Fleetrun
Hecterra
NimBus
Otras aplicaciones
Wialon para Android/iOS
Logistics
Wialon Local
Wialon Hosting
WiaTag
Configurator
LeaseControl
es
Contenido
Cómo elegir el parámetro del sensor
  • technical_consulting
  • sensor_parameters
  • sensor_types

Si conoce el tipo de dispositivo, su configuración y cómo se instaló, puede saber qué parámetro elegir para el sensor en Wialon. Pero si ha comenzado a trabajar con Wialon recientemente y tiene dudas, este artículo puede ayudarle a seleccionar el parámetro basándose en cómo lo hacen habitualmente otros usuarios.

Recomendaciones generales

  1. La lista de parámetros y su descripción se pueden encontrar en la página del dispositivo específico en el sitio web wialon.com en la sección Hardware. Para ello, introduzca el modelo de dispositivo deseado en la barra de Buscar dispositivos. También puede seleccionar una de las categorías de tipos de equipamiento y encontrar el modelo deseado en la lista. Luego, en la página del dispositivo, vaya a la pestaña Parámetros (ejemplo de dicha página para WiaTag).

    Si en la página del dispositivo no hay descripción de los parámetros, contacte a los especialistas en equipamiento a través del correo hw@wialon.com.

  2. En la mayoría de los casos, se puede entender el contenido del parámetro por su nombre en inglés. Por ejemplo, el parámetro fuel_lvl probablemente mostrará el valor del nivel de combustible, el parámetro total_mileage mostrará los valores del sensor de kilometraje, etc. Los nombres de los parámetros obtenidos del CAN bus generalmente comienzan con el prefijo can.

  3. Los parámetros que transmite el dispositivo pueden estar descritos en la documentación del equipamiento. La documentación generalmente se presenta en el sitio web del fabricante.

  4. Existe una lista de parámetros virtuales que están definidos en el sistema por defecto y son adecuados para casi cualquier tipo de equipamiento: 
    • speed  — velocidad de movimiento;
    • altitude — altura sobre el nivel del mar;
    • sats — número de satélites;
    • course — dirección de movimiento;
    • lat — latitud geográfica;
    • lon — longitud geográfica;
    • time — tiempo UNIX del mensaje;
    • regtime — tiempo de registro del mensaje en el servidor.

El método de búsqueda y verificación del parámetro seleccionado depende del tipo de sensor en el que se utiliza. A continuación, veremos varios ejemplos para los tipos de sensores más comúnmente utilizados.

Sensor de ignición

El Sensor de ignición es un sensor digital que muestra si el motor está en marcha o no. Cuando el valor del sensor digital toma un valor cero, se considera apagado, y cuando el valor toma un valor distinto de cero, el sensor se considera encendido.

El sensor de ignición no muestra la posición ACC de la llave de encendido, en la que el motor no está en marcha, pero el equipo adicional ya está disponible para su uso.

Como parámetro para el Sensor de ignición puede ser adecuada una de las entradas digitales (al final de los mensajes, el parámetro con formato I/O). El I/O describe el estado de todas las entradas y salidas digitales simultáneamente, y se puede usar para determinar el estado de una entrada digital específica usando el parámetro inN (la lógica de selección del número de entrada N se describe en otro artículo).

También se puede intentar crear un sensor de ignición basado en el parámetro que muestra el voltaje externo (generalmente se llama pwr_ext). En este caso, es necesario crear una Tabla de cálculo en las propiedades del sensor. En el manual del usuario se proporciona un ejemplo de dicha tabla. Al usar este ejemplo, solo es necesario cambiar el valor umbral de voltaje al cual se considerará que la ignición está activada.

Método práctico de selección y verificación del parámetro

  1. Apague el motor y espere a recibir varios mensajes del rastreador.
  2. Encienda el motor y espere a recibir varios mensajes más.
  3. Compare los mensajes recibidos en los puntos 1 y 2. Si solo un parámetro cambió abruptamente, es muy probable que éste muestre el estado de la ignición. Si cambiaron varios parámetros, se puede seleccionar el necesario mediante una verificación adicional descrita en el siguiente punto.
  4. Examine los mensajes con velocidad distinta de cero. Se supone que la ignición está activada cuando hay velocidad, así como en varios mensajes antes y después de la presencia de velocidad. Se recomienda considerar intervalos de al menos cinco minutos de duración, ya que algunos rastreadores pueden cambiar el modo de envío de mensajes después del inicio y finalización del movimiento.
 Ejemplo

La unidad envió mensajes con los siguientes parámetros:


speedparam1param2param3
15526.00301000
25626.00401020
35726.00511015
4026.00611004
5026.0071476
6026.0080489
71026.00901001
81126.01011004

Supongamos que la ignición de la unidad estaba apagada en el 5º y 6º mensaje (resaltados en rojo). En los demás mensajes, la ignición está activada (resaltados en verde).

param1 — el valor aumentó constantemente en todos los intervalos, no hay cambios abruptos, no hay relación con la presencia o ausencia de velocidad. Por lo tanto, este parámetro no puede utilizarse para el sensor de ignición.

param2 — cambió en los tres intervalos, tomó un valor cero cuando había velocidad en los mensajes, aunque en ese momento la ignición debería estar activada. Por lo tanto, este parámetro no puede utilizarse para el sensor de ignición.

param3 — en los intervalos cuando se supone que la ignición está activada, el parámetro toma un valor superior a 1000, y en los intervalos cuando la ignición está apagada, el valor cae abruptamente a un nivel inferior a 500. Por lo tanto, se puede intentar utilizar este parámetro en el sensor de ignición aplicando una tabla de cálculo.

Sensores de kilometraje

Actualmente en Wialon existen dos sensores para el registro del kilometraje:

  1. El Sensor de kilometraje muestra todo el kilometraje de la unidad desde la instalación del sensor.
  2. El Odómetro relativo muestra el kilometraje entre el mensaje actual y el anterior.

Si el dispositivo envía parámetros para ambos tipos de sensores mencionados, las lecturas del odómetro no necesariamente deben coincidir completamente con la diferencia que resulta al restar las lecturas del sensor de kilometraje en dos mensajes adyacentes. Esto se debe a que el algoritmo de cálculo de los sensores puede diferir por parte del propio dispositivo. Para la demostración al usuario, se recomienda elegir el sensor que muestre resultados más confiables.

Ambos sensores para el registro del kilometraje utilizan kilómetros (o millas) como unidades de medida. Si el parámetro entrante tiene otras unidades de medida, es necesario aplicar un coeficiente para convertir los valores obtenidos a kilómetros (o millas). Por ejemplo, si el parámetro can_odo muestra el valor en metros, entonces en el campo Parámetro en las propiedades del sensor será necesario escribir la siguiente fórmula para la conversión a kilómetros: can_odo/const1000

Método práctico de selección y verificación del parámetro

Para verificar si el parámetro está correctamente seleccionado para el Sensor de kilometraje o el Odómetro relativo, se puede utilizar la herramienta Distancia. Los valores de los parámetros y la distancia medida entre dos mensajes generalmente no coinciden completamente, pero son conmensurables. Esto se debe a que la herramienta Distancia calcula matemáticamente la distancia entre dos puntos con las coordenadas seleccionadas, mientras que los sensores generalmente cuentan los kilómetros recorridos basándose en el número de rotaciones de la rueda y su diámetro.

El parámetro se puede utilizar en el Sensor de kilometraje si:

  1. su valor no cambia cuando la unidad está detenida;
  2. su valor aumenta cuando la unidad se mueve;
  3. la diferencia de sus valores en dos mensajes adyacentes es conmensurable con el valor obtenido al usar la herramienta Distancia.

El parámetro se puede utilizar en el Odómetro relativo si:

  1. es igual a cero cuando la unidad está detenida;
  2. tiene un valor positivo cuando la unidad se mueve;
  3. tiene valores aproximadamente iguales cuando la unidad se mueve a la misma velocidad;
  4. su valor es conmensurable con el valor obtenido al usar la herramienta Distancia.
 Ejemplo

La unidad envió mensajes con los siguientes parámetros:

Cree un Sensor de kilometraje basado en el parámetro mileage, ya que aumenta constantemente en movimiento y no cae a cero durante las paradas.

Cree un Odómetro relativo basado en el parámetro odo, ya que tiene diferentes valores en movimiento y cae a cero durante las paradas. Sin embargo, su valor parece demasiado grande, así que intente aplicar la fórmula odo/const1000.

Mida el kilometraje de la unidad entre varios pares de mensajes utilizando la herramienta Distancia, colocando los segmentos medidos sobre la ruta.

Compare los valores obtenidos:

Sensor de kilometrajeDiferencia con el valor anterior del sensor de kilometrajeOdómetro relativoHerramienta Distancia
16801.54 km1.00 km
26802.52 km6802.52 - 6801.54 = 0.98 km1.00 km1.000 km
36803.51 km6803.51 - 6802.52 = 0.99 km1.00 km1.020 km
46804.00 km6804.00 - 6803.51 = 0.49 km0.50 km0.500 km
56804.20 km6804.20 - 6804.00 = 0.20 km0.50 km0.160 km
66804.20 km6804.20 - 6804.20 = 0.00 km0.00 km-

Los valores son aproximadamente iguales, por lo que se puede suponer que los parámetros para ambos sensores se han elegido correctamente. Tenga en cuenta que diferentes sensores pueden tener diferentes precisiones. En tal caso, en el Contador de kilometraje y la Detección de viajes se recomienda utilizar el sensor que envía lecturas más cercanas a las esperadas.

Sensores de combustible

Actualmente en Wialon existen varios tipos de sensores de combustible:

  • El Sensor del consumo de combustible absoluto (SCCA) muestra el consumo de combustible durante todo el período de operación de la unidad. Por lo tanto, para obtener datos sobre el consumo durante un período específico, se utiliza el siguiente algoritmo: se calcula la diferencia entre las lecturas del sensor al final y al principio del intervalo considerado.

  • El Sensor del consumo de combustible instantáneo (SCCI) muestra la cantidad de combustible consumido desde la medición (mensaje) anterior. Por lo tanto, para obtener datos sobre el consumo durante un período específico, se utiliza el siguiente algoritmo: se calcula la suma de las lecturas del sensor en todos los mensajes en el intervalo considerado.

  • El Sensor impulsivo del consumo de combustible (SICC) tiene el principio de funcionamiento similar al SCCI.

  • El Sensor de nivel de combustible (SNC) está diseñado para calcular la cantidad de combustible en el tanque. Se puede utilizar para calcular el consumo, así como para controlar las descargas y llenados de combustible.

  • El Sensor impulsivo del nivel de combustible (SINC), al igual que el sensor anterior, está diseñado para calcular la cantidad de combustible en el tanque. Se puede utilizar para calcular el consumo, así como para controlar las descargas y llenados de combustible. La diferencia con el SNC es que en el cálculo se utilizan datos del mensaje anterior, y la diferencia de valores de impulsos de dos mensajes adyacentes se divide por la diferencia de tiempo entre ellos. Este tipo de sensor casi no se utiliza en la práctica; en su lugar, la mayoría de los usuarios prefieren un SNC normal.

Si el dispositivo envía simultáneamente parámetros para varios tipos de los sensores mencionados, sus lecturas y los resultados de los cálculos basados en ellos pueden diferir. Esto se debe a la diferencia en los métodos de medición, así como a las peculiaridades del trabajo con el combustible. Para la demostración al usuario, se recomienda elegir el sensor que muestre resultados más confiables.

La información sobre el combustible puede estar contenida en parámetros con los siguientes nombres: fuel_lvl, fuel_used, cons_total, can_fuel, rs485_lls, adc1, adc2, etc.

La elección del tipo de sensor debe basarse en cómo cambia el valor del parámetro. Consideremos diferentes comportamientos de los parámetros a continuación.

Sensor del consumo de combustible absoluto

El parámetro se puede utilizar en el Sensor del consumo de combustible absoluto si:

  • su valor no cambia cuando el motor no está funcionando;
  • su valor aumenta durante el funcionamiento del motor;
  • su valor crece más rápidamente durante el movimiento o el trabajo bajo carga que durante la parada o la ausencia de carga.

Sensor del consumo de combustible instantáneo y Sensor impulsivo del consumo de combustible

El parámetro se puede utilizar en el Sensor del consumo de combustible instantáneo o en el Sensor impulsivo del consumo de combustible si:

  • es igual a cero cuando el motor no está funcionando;
  • tiene un valor positivo cuando el motor está funcionando;
  • tiene valores aproximadamente iguales cuando la unidad se mueve a la misma velocidad o trabaja bajo la misma carga.

Sensor de nivel de combustible

El parámetro se puede utilizar en el Sensor de nivel de combustible si:

  • su valor no cambia cuando el motor no está funcionando;
  • su valor disminuye gradualmente cuando el motor está funcionando;
  • su valor cae más rápidamente durante el movimiento o el trabajo bajo carga que durante la parada o la ausencia de carga;
  • su valor fluctúa alrededor del valor real durante el funcionamiento del motor y el movimiento;
  • su valor aumenta bruscamente durante el llenado.

A diferencia de los sensores de consumo de combustible, el parámetro del SNC puede no comportarse como se describe arriba, porque durante la parada o el movimiento puede haber una descarga de combustible, la unidad puede moverse en un plano inclinado, la temperatura puede cambiar significativamente durante el día, el combustible puede contener impurezas, etc. Puede leer más sobre los problemas en el control de combustible y los métodos para resolverlos en la sección Artículos de expertos → Combustible.

A continuación se muestra un ejemplo de gráfica con los cambios del parámetro SNC que contiene intervalos de viaje y llenados de combustible.

En algunos casos, el parámetro de SNC se comporta de manera opuesta: cuando el motor está funcionando, su valor aumenta, y durante el llenado, disminuye. Esta diferencia se nivelará después de realizar la calibración del tanque e introducir sus resultados en la Tabla de cálculo.

Ekaterina Grib,Customer Service Engineer

Cómo elegir el número de entrada/salida digital (I/O)
  • technical_consulting
  • sensor_parameters

Una entrada digital y una salida digital son contactos (pines conectores) a los que se aplica voltaje de solo dos niveles: uno corresponde al estado activado (1 o Encendido), y el otro al estado desactivado (0 o Apagado). Por lo tanto, las entradas y salidas digitales se utilizan para conectar al rastreador dispositivos o circuitos que transmiten solo dos estados posibles. Por ejemplo, se puede conectar un sensor de estado de puerta a una entrada digital del rastreador para que este pueda determinar si está abierta o no. Y a una salida digital del rastreador se puede conectar un dispositivo antirrobo que será controlado por el rastreador y bloqueará el encendido.

Cabe señalar que si el cliente necesita un valor numérico exacto, se requiere un conector analógico. Porque si, por ejemplo, se usa una entrada digital para un sensor de nivel de combustible, solo podrá saber si hay combustible en el tanque o no.

El número de entradas y salidas digitales en un rastreador puede ser bastante grande (por ejemplo, el Galileosky 7x puede tener de 6 a 10 entradas digitales dependiendo de la modificación y configuración). Por lo tanto, los usuarios a menudo se preguntan: ¿a qué entrada o salida digital conectó el mecánico el dispositivo para el cliente? Con las instrucciones a continuación, podrá obtener la respuesta requerida.

Visualización de entradas/salidas digitales

Primero, cabe señalar que el estado de las entradas y salidas digitales en Wialon se presenta en forma de dos números hexadecimales (HEX), obtenidos de números binarios (BIN), en los que cada bit corresponde a una entrada/salida con el mismo número. El parámetro con estos valores tiene el nombre I/O (abreviatura de Inputs/Outputs) y contiene dos números separados por una barra diagonal: a la izquierda está el valor correspondiente al estado de todas las entradas, y a la derecha, al estado de las salidas.

¿Por qué se eligió esta implementación? Analicemos un ejemplo.

Supongamos que el equipo está conectado a las entradas digitales 1, 3, 4 y 7, así como a las salidas 1, 3, 6 y 8. Supongamos también que en el mensaje considerado todas las entradas y salidas mencionadas están activadas. Si se usara un parámetro separado en el mensaje para cada uno de ellos, vería lo siguiente:

in1=1, in2=0, in3=1, in4=1, in5=0, in6=0, in7=1, in8=0, out1=1, out2=0, out3=1, out4=0, out5=0, out6=1, out7=0, out8=1

Y en la implementación actual en Wialon, verá el siguiente registro:

I/O=4D/A5

Y la obvia brevedad del registro en este caso es la ventaja clave.

Determinación del número de entrada/salida digital activada

Si se conoce el número N de la entrada o salida, el parámetro correspondiente tendrá la forma inN, y el parámetro de salida, outN. Por ejemplo, el parámetro para la cuarta entrada es in4, y para la cuarta salida es out4.

Sin embargo, si no conoce el número de la entrada o salida a la que está conectado el equipo, puede usar uno de dos métodos: selección o enfoque matemático.

Selección

Al conectar el equipo, los mecánicos suelen usar las primeras entradas/salidas. Es decir, si se trata de un dispositivo o circuito que transmite información al rastreador, vale la pena verificar in1-in4, y si se trata de un dispositivo o circuito controlado por el rastreador, out1-out4.

Para buscar la entrada necesaria, puede crear 4 sensores con el tipo Sensor digital personalizado basados en estos parámetros (por ejemplo, en el primer sensor en la línea Parámetro será in1, en el segundo in2 y así sucesivamente). Luego vaya al panel Mensajes, seleccione el tipo de mensajes Mensajes de datos y en el menú de abajo indique Valores de sensores. Después de esto, ejecute mensajes para el intervalo cuando el equipo estuvo primero apagado y luego encendido, para encontrar el momento de transición del estado Apagado al estado Encendido en una de las columnas, cada una de las cuales corresponde al sensor creado.

Este es el método práctico más rápido para encontrar la entrada necesaria (de manera similar se puede trabajar con las salidas, pero en este caso se deben usar los parámetros out1, out2, etc.). Si no funciona, puede recurrir al enfoque matemático.

Enfoque matemático

Si no conoce el número de la entrada/salida a la que está conectado el equipo, puede usar las siguientes instrucciones:

  1. Vaya al panel Mensajes, seleccione el tipo de mensajes Mensajes de datos y en el menú de abajo indique Datos sin procesar.
  2. Ejecute mensajes para el intervalo cuando el equipo estuvo primero apagado y luego encendido.
  3. Después de mostrar la tabla con mensajes del rastreador, preste atención a la columna Parámetros y encuentre allí el parámetro I/O (está ubicado al final de la línea).

    Supongamos que en el mensaje donde el equipo estaba apagado, el parámetro I/O=102/0, es decir, las salidas digitales están desactivadas (o incluso no conectadas), y algunas entradas digitales están activadas.

  4. Abra la aplicación Calculadora (está instalada en cada computadora, o se pueden encontrar sus análogos en Internet) y cámbiela al modo Programador (o similar, que permite convertir valores de un sistema numérico a otro).
  5. Cambie la calculadora al sistema numérico hexadecimal (HEX).
  6. Ingrese el valor 102 encontrado anteriormente.
  7. La aplicación automáticamente (o al presionar la tecla Enter) le presentará este número en diferentes sistemas numéricos. Nos interesa el registro en forma binaria (BIN), que consiste solo en ceros y unos.



  8. Examine el número binario obtenido. Tenga en cuenta que el conteo del número de bit va de derecha a izquierda (como en el sistema decimal, donde las unidades están a la derecha, a su izquierda están las decenas, luego las centenas, miles, etc.): 0001 0000 0010
  9. Determine los números de bits para este número (la numeración de bits en Wialon comienza desde 1):

    Número121110987654321
    Valor000100000010
  10. De este registro se puede concluir que en este mensaje están activadas las entradas 2 y 9 (es decir, in2=1, in9=1), y todas las demás entradas están desactivadas (es decir, su valor es cero).
  11. Ahora encuentre el mensaje en el que el equipo estaba encendido. Supongamos que contiene el parámetro I/O=10A/0.
  12. Repita los pasos 4-8 para el valor 10A.



  13. Determine los números de bits para este número:

    Número121110987654321
    Valor000100001010
  14. En este mensaje están activadas las entradas 2, 4 y 9 (es decir, in2=1, in4=1 e in9=1).
  15. Compare los resultados de los pasos 10 y 14. Como se puede notar fácilmente, solo difieren en el estado del parámetro in4, es decir, en el ejemplo dado, el equipo estaba conectado a la entrada 4.

Uso de entradas/salidas digitales

El parámetro de entrada o salida digital se puede usar de la misma manera que cualquier otro parámetro.

Al crear sensores para entradas/salidas digitales, los tipos más adecuados son los del grupo Digitales, ya que implican solo dos estados (Encendido y Apagado).

Un método único de uso, que solo está disponible para entradas digitales, es la notificación con el tipo Entrada digital, para la cual ni siquiera es necesario crear un sensor.

Oleg Zharkovsky,Customer Service Engineer

Sensores: explicación de la tabla de cálculo
  • technical_consulting
  • calculation_table

Una de las primeras y principales etapas del trabajo con Wialon es la configuración de sensores en la unidad. Si los sensores se configuran correctamente, algunos algoritmos estándar darán resultados más precisos y podrá utilizar funcionalidades previamente no disponibles. En este artículo, se examinará en detalle la tabla de cálculo, una herramienta de la pestaña del mismo nombre, ya que es la que más frecuentemente causa dificultades al configurar sensores.

El artículo contiene información de diferentes niveles de complejidad. La parte principal será útil para entender la lógica de funcionamiento de la tabla de cálculo. Sin embargo, los interesados también podrán encontrar aquí formulaciones matemáticas más detalladas, que se destacarán en bloques especiales llamados Minuto matemático. Para una comprensión general del artículo, no es necesario leer estos bloques.

Principio general de funcionamiento de los sensores

Wialon soporta muchos tipos de rastreadores (la cantidad actual se puede encontrar en el sitio web wialon.com en la sección Hardware), y cada uno de ellos "habla" en su propio "idioma". Por lo tanto, los parámetros que provienen de diferentes rastreadores y se muestran en la pestaña Mensajes pueden contener la misma información (por ejemplo, sobre temperatura o kilometraje), pero tener diferentes nombres. Para que el usuario no note diferencias al usar unidades con diferentes tipos de rastreadores, es necesario crear sensores para cada unidad en Wialon. Los sensores tienen un tipo determinado, lo que permite al sistema entender qué algoritmo se debe usar para procesar los parámetros entrantes.

Sin embargo, a menudo simplemente elegir el tipo de sensor e indicar un parámetro en él no es suficiente, porque el valor del parámetro llega de una forma no obvia para el usuario. Por ejemplo, temp=125 puede significar 125°F, 125°C, 12.5°C o incluso −3°C. Existen 3 métodos para convertir el parámetro entrante a la forma deseada:

  1. Expresión en la línea Parámetro;
  2. Tabla de cálculo;
  3. Validación.

Se pueden usar por separado o combinar. Si se usan varios métodos simultáneamente, se aplicarán en el orden en que se enumeran arriba.

Esquemáticamente, el uso de sensores se puede representar de la siguiente manera:

  1. El sensor conectado al rastreador mide algún valor físico, que designaremos como S.
  2. El sensor convierte este valor y la transmite al rastreador. Del rastreador a Wialon llega el parámetro X.
  3. Basándose en el parámetro, se crea un sensor en Wialon. Para obtener un valor Y comprensible para el usuario, se aplican transformaciones f(X) al parámetro en el sensor.
  4. Idealmente, después de las transformaciones en el sensor, el valor Y=f(X) debería ser igual al valor que se midió en la primera etapa. Luego, Y se utilizará en tooltips, informes, notificaciones y otras funcionalidades de Wialon.

Dado que este artículo solo trata sobre la configuración de la tabla de cálculo en Wialon, del esquema anterior solo prestaremos atención a los siguientes elementos:

Cuándo se usa la tabla de cálculo

Por lo general, la tabla de cálculo se usa en casos donde es necesario transformar el parámetro de entrada. Sin embargo, los 3 métodos mencionados anteriormente sirven para esto. ¿En qué caso se debe recurrir específicamente a la tabla de cálculo?

Desde el punto de vista de la aplicación práctica, se puede decir que la tabla de cálculo se utiliza:

  • para la tabla de calibración (por ejemplo, para sensores de peso o nivel de combustible);
  • para sensores digitales basados en datos de entrada analógicos (por ejemplo, para sensores de ignición basados en voltaje);
  • para sensores basados en códigos que describen diferentes estados pero llegan en un solo parámetro (por ejemplo, device_status=4 muestra el estado de la ignición del motor, y device_status=13 significa que el botón de pánico está presionado, etc.);
  • para sensores que deben mostrar valores positivos y negativos, aunque el parámetro asociado solo tiene valores positivos (por ejemplo, para sensores de temperatura);
  • para cualquier sensor en el que sea necesario separar el rango de valores correctos y erróneos (por ejemplo, si el sensor envía valores especiales en el parámetro que indican errores).
 Minuto matemático

En otras palabras, vale la pena usar la tabla de cálculo si:

  • la fórmula Y=f(X) es desconocida, pero en la práctica se han establecido correspondencias entre algunos X e Y;
  • la fórmula Y=f(X) es demasiado compleja (por ejemplo, contiene funciones sin, cos, log, etc., que no son soportadas en Wialon);
  • la fórmula Y=f(X) tiene una forma diferente en diferentes intervalos y no puede ser descrita por una sola función;
  • es necesario separar el rango de valores correctos y erróneos.

Configuración de la tabla de cálculo

La tabla de cálculo implica trabajar con las funciones lineales más simples. Es decir, la tabla de cálculo transforma los datos de acuerdo con la siguiente fórmula: Y=a⋅X+b que es una de las variantes de la ecuación de una línea recta.

Si entendemos cómo funciona cada componente de esta herramienta, se pueden crear soluciones bastante útiles e inusuales con su ayuda. Por lo tanto, a continuación examinaremos cada área de la pestaña Tabla de cálculo por separado, visualizando su impacto en el resultado mediante un gráfico.

Para ver la gráfica que corresponde a la tabla de cálculo completada, es necesario hacer clic en el icono  en la parte superior de la pestaña.

Pares XY

En la parte derecha se encuentra el bloque Pares XY. Su llenado no es suficiente para el funcionamiento de la tabla de cálculo, pero puede simplificar su configuración.

Recomendamos usar pares XY solo para sensores de nivel de combustible, para introducir la tabla de calibración. En otros casos, es mejor calcular e introducir los valores X, a y b independientemente.

Se pueden agregar pares tanto manualmente como mediante la importación de archivos CSV o TXT (la exportación solo está disponible en CSV). Después de llenar todas las filas de este bloque, es necesario hacer clic en el botón Generar (se entiende "Generar tabla de cálculo basada en pares XY"), lo que llevará al cálculo de los valores X, a y b en la parte izquierda de la ventana.

Cada uno de los pares XY agregados corresponde a un punto en el gráfico. Como puede saber, se puede trazar una línea recta a través de 2 puntos. Por lo tanto, si se introducen 5 pares XY, se obtendrán 4 líneas rectas en el gráfico.

No se permite introducir pares con el mismo valor de X. Esto es técnicamente imposible, ya que un valor de X no puede corresponder a dos o más valores de Y. Sin embargo, se pueden introducir valores iguales de Y.

X es valor de entrada

El bloque central de la pestaña Tabla de cálculo contiene filas con valores X, a y b. Cada fila corresponde a una línea recta en el gráfico. El valor X en cada fila significa el comienzo de una nueva línea recta, es decir, establece el intervalo donde se usarán los nuevos valores a y b.

La última fila afecta todos los valores posteriores hasta +∞, y la primera fila afecta los valores incluso antes del primer X especificado, es decir, comenzando desde −∞. Por lo tanto, no tiene sentido escribir varias filas consecutivas con los mismos valores a y b.

Como ejemplo, consideremos una tabla con los siguientes valores:

De otra manera, esta condición se puede escribir así:

  • De −∞ a 3 (sin incluir) se aplica la ecuación Y=1⋅X-2.
  • De 3 (incluyendo) a 5.5 (sin incluir) se aplica la ecuación Y=0⋅X+3.
  • De 5.5 (incluyendo) a +∞ se aplica la ecuación Y=-0.5⋅X+2.

Ejemplo de gráfica obtenida al llenar la tabla de cálculo

a es coeficiente de inclinación de la línea recta

Cuando a=0, la inclinación será 0°, es decir, la línea será paralela al eje X.
Cuando a=1, la inclinación será 45°, es decir, cuanto mayor sea el coeficiente, más cerca estará la línea del eje Y.
Cuando a=-1, la inclinación será −45°, es decir, los valores negativos de este coeficiente inclinan la línea hacia abajo, y los positivos hacia arriba.

Ejemplo de gráfico de la línea recta Y=a⋅X con diferentes coeficientes de inclinación

Determinar el coeficiente de inclinación de una línea recta puede ser bastante simple: su valor es igual a la relación del cambio en Y al cambio en X.

Como ejemplo, podemos considerar la línea verde en el gráfico de arriba. Se puede ver que Y aumenta de 0 a 1 cuando X crece de 0 a 3, lo que significa que para esta línea el coeficiente a=(1-0)/(3-0)=1/3=0.33.


b es desplazamiento de la línea recta a lo largo del eje Y

Cuando b=0, no hay desplazamiento.
Cuando b>0, la línea se desplaza hacia arriba con respecto al eje X.
Cuando b<0, el desplazamiento es hacia abajo.

Ejemplo de líneas con diferentes desplazamientos

Cuando se usan pares XY, el valor de b se calcula automáticamente de manera que el siguiente segmento de línea continúe suavemente el anterior.

Calcular el valor de b no es tan simple como el coeficiente de inclinación, ya que en la mayoría de los casos no tiene una analogía comprensible fuera de las matemáticas, excepto por el desplazamiento de la línea hacia arriba o hacia abajo.

La única excepción es el caso cuando se configura un sensor digital usando la tabla de cálculo. En este caso, a=0, y la fórmula toma la forma Y=b. Por lo tanto, el valor de b será igual a lo que espera ver como Y.

Límites inferior y superior

Los límites permiten descartar valores erróneos del sensor según un principio simple: si el valor está fuera del rango entre el límite inferior y superior, el sensor mostrará un guion (error).

Consideremos un ejemplo con un sensor de nivel de combustible. Supongamos que los valores del parámetro de 3 a 250 corresponden a un volumen de combustible de 0 litros a 100 litros. Y los valores del parámetro 0 o 255 indican errores que queremos excluir para que no se interpreten como un volumen real (ya que en el tanque considerado no puede haber menos de 0 o más de 100 litros de combustible). Para este ejemplo, se puede proponer una solución con la opción Aplicar después del cálculo desactivada:

También existe una solución con la opción Aplicar después del cálculo activada:

Como el límite inferior está incluido en el rango permitido, podemos especificar los valores de la condición (3 o 0). Pero el límite superior no está incluido en el rango permitido, por lo que en este campo se debe especificar un valor ligeramente mayor que en la condición (250.1 o 100.1).

Del ejemplo se puede entender que la opción Aplicar después del cálculo afecta a qué valores se aplican los límites: si está desactivada, se filtran los valores en el eje X (valores de entrada antes de aplicar la tabla de cálculo), y si está activada, se filtran los valores en el eje Y (valores del sensor después de aplicar la tabla de cálculo).

Para visualizar el funcionamiento de los límites, consideremos otro ejemplo en el que se aplican los mismos límites a la misma línea recta, y la diferencia radica solo en la opción Aplicar después del cálculo, que afecta significativamente el resultado.

Límite inferior igual a 2, límite superior igual a 3, opción Aplicar después del cálculo desactivada

Límite inferior igual a 2, límite superior igual a 3, opción Aplicar después del cálculo activada

Principio de funcionamiento de la tabla de cálculo

A veces, para entender la esencia de un fenómeno, es necesario ir al revés. Si conocemos la fórmula exacta Y=f(X) que relaciona los valores de entrada y salida en todo el rango, no es necesario recurrir a la tabla de cálculo; es suficiente simplemente usar la expresión en la línea Parámetro. Consideremos tal caso.

Por ejemplo, supongamos que el valor de entrada está relacionado con el de salida por la siguiente fórmula: Y=0.5⋅X². Como parámetro, tomemos adc3. Para describir tal fórmula en Wialon, es necesario insertar la siguiente expresión en la línea Parámetro: const0.5*adc3^const2

Gráfico de la función Y=0.5⋅X²

Pero ¿qué hacer si no conocemos la fórmula exacta Y=f(X)? Es precisamente en este caso que nos ayudará la tabla de cálculo.

Supongamos que en ciertas condiciones conocemos los valores de la magnitud medida (esto será Y) y podemos verificar qué valor tomará el parámetro en Wialon en estos puntos (esto será X). De esta manera, podemos obtener valores, por ejemplo, en 4 puntos: (0; 0), (1; 0.5), (2; 2), (3; 4.5). Luego, trazamos estos puntos (X, Y) en el gráfico y los conectamos con segmentos de color rojo.

Reproducción de parte de la función Y=0.5⋅X² con segmentos construidos a partir de 4 puntos

No es difícil notar que el resultado es cercano al que se obtiene por la fórmula, pero aún hay diferencias. En algunos casos, tal precisión será suficiente, y si no lo es, se pueden medir valores en más puntos. En el gráfico de abajo se muestra un ejemplo para 6 puntos: (0; 0), (0.5; 0.125), (1; 0.5), (1.5; 1.125), (2; 2), (3; 4.5).

Reproducción de parte de la función Y=0.5⋅X² con segmentos construidos a partir de 6 puntos

Del ejemplo considerado se puede sacar la siguiente conclusión: la relación entre X e Y se puede describir no solo mediante una fórmula, sino también mediante varias líneas rectas, aunque a veces de manera simplificada. En esto radica la esencia del uso de la tabla de cálculo.

 Minuto matemático

La tabla de cálculo utiliza aproximación puntual e interpolación lineal.

La aproximación puntual es encontrar una función que esté cerca de la original basándose en un conjunto de valores conocidos de antemano. En Wialon, se utiliza para reproducir aproximadamente la función basándose en pares XY.

La interpolación lineal es el cálculo de valores en los segmentos entre puntos inicialmente conocidos mediante líneas rectas que pasan por estos puntos. En Wialon, se utiliza para calcular valores en puntos que se encuentran entre pares XY previamente introducidos, según la función aproximadamente reproducida.

Justificación y ejemplos de uso

En esta sección, consideraremos varios casos en los que la tabla de cálculo será útil.

La forma de la curva que describe la relación entre X e Y puede ser bastante compleja.

Por ejemplo, al usar un sensor de nivel de combustible, es necesario calibrar el tanque, y la forma del gráfico construido según la tabla de calibración dependerá de la geometría del tanque, que nunca es ideal (puede tener curvas, abolladuras, costillas internas, etc.).

Gráfico construido según la tabla de calibración con pequeños pasos entre mediciones

Describir tal dependencia con una sola fórmula es bastante problemático. Una forma más simple de describir la curva para el sistema es dividirla en intervalos donde se comporta aproximadamente como una línea recta y determinar las fórmulas de estas líneas. Se puede obtener un resultado similar usando pares XY.

Reproducción de la forma de una curva compleja mediante segmentos que pasan por 11 puntos

Además, a veces la dependencia entre X e Y puede ser diferente en varios intervalos. Para describirla, es necesario utilizar un sistema de varias expresiones, lo cual no se puede hacer en la línea Parámetro en las propiedades del sensor.

Por ejemplo, algunos sensores de temperatura funcionan de la siguiente manera: los valores de X en el rango de 0 a 127 corresponden a temperatura positiva, y en el rango de 128 a 255 a temperatura negativa. Para procesar tal caso, se necesitarán dos líneas en la tabla de cálculo:

X=0; a=1; b=0
X=128; a=1; b=-256

Gráfico de temperatura, donde valores más altos del parámetro corresponden a temperatura negativa

Los sensores digitales son otro ejemplo claro de una situación donde la dependencia entre X e Y es diferente en varios intervalos. Por ejemplo, se puede crear un sensor de ignición basado en el parámetro de voltaje, y para esto es necesario considerar dos condiciones: Y=0 cuando X<14, Y=1 cuando X≥14. Pero, como ya sabemos, no se puede hacer esto usando una expresión en las propiedades del sensor. Y en la pestaña Tabla de cálculo, para esto se necesitarán solo dos líneas:

X=0; a=0; b=0
X=14; a=0; b=1

En los sensores digitales, el coeficiente de inclinación siempre es 0.

Gráfico del estado de ignición en función del voltaje

 Minuto matemático

En el artículo ya se ha mencionado varias veces que idealmente se necesita una fórmula de relación entre X e Y para el sensor, y usamos la tabla de cálculo debido a la falta de otras opciones. En realidad, se puede intentar calcular tal fórmula, pero para esto es necesario tener una idea de los métodos numéricos de análisis y el software correspondiente. Al mismo tiempo, el resultado probablemente será difícil de entender y será difícil de corregir en el futuro. Para demostrarlo, calculamos un polinomio de interpolación para los siguientes 7 puntos: (0; 5), (400; 8), (1000; 22), (1850; 78), (2800; 160), (3600; 195), (4096; 200).

El resultado de la interpolación polinomial en este caso tiene la siguiente forma:

Y=1.78962834270398⋅10-19⋅X6-7.99064624017665⋅10-16⋅X5-4.83816855045549⋅10-12⋅X4+
+2.62803612257704⋅10
-8⋅X3-1.24091655860425⋅10-5⋅X2+8.58707470047479⋅10-3⋅X+5

Esta fórmula se puede introducir en la línea Parámetro en las propiedades del sensor (teniendo en cuenta la sintaxis de Wialon), y realmente funcionará. El gráfico de tal función en el rango de 0 a 4096 tiene el siguiente aspecto:

Sin embargo, si la dependencia descrita tiene una forma más compleja que la mostrada en el gráfico anterior, será necesario tomar más puntos o incluso usar otro método de interpolación, lo que puede llevar a que el resultado sea aún más difícil de percibir. Por lo tanto, la interpolación lineal, que se utiliza en la tabla de cálculo en Wialon, parece muy ventajosa en este contexto, ya que es bastante precisa y simple.

Oleg Zharkovsky,Customer Service Engineer

Sensores: lógica y alternativas de validación
  • technical_consulting
  • sensors
  • validation

Una de las primeras y principales etapas del trabajo con Wialon es la configuración de sensores en la unidad. En este artículo se examinará en detalle la validación de sensores, ya que tiene opciones de uso no obvias y permite realizar acciones únicas con los sensores.

Principio general de funcionamiento de los sensores

Wialon soporta muchos tipos de rastreadores (la cantidad actual se puede encontrar en el sitio web wialon.com en la sección Hardware), y cada uno de ellos "habla" en su propio "idioma". Por lo tanto, los parámetros que provienen de diferentes rastreadores y se muestran en la pestaña Mensajes pueden contener la misma información (por ejemplo, sobre temperatura o kilometraje), pero tener diferentes nombres. Para que el usuario no note diferencias al usar unidades con diferentes tipos de rastreadores, es necesario crear sensores para cada unidad en Wialon. Los sensores tienen un tipo determinado, lo que permite al sistema entender qué algoritmo se debe usar para procesar los parámetros entrantes.

Sin embargo, a menudo simplemente elegir el tipo de sensor e indicar un parámetro en él no es suficiente. Existen 3 métodos para convertir el valor del parámetro a la forma deseada:

  1. Expresión en la línea Parámetro;
  2. Tabla de cálculo;
  3. Validación.

Se pueden usar por separado o combinar. Si se usan varios métodos simultáneamente, se aplicarán en el orden en que se enumeran arriba.

En algunos casos, se puede lograr el mismo resultado con diferentes métodos. Por ejemplo, sumar los valores de dos sensores se puede hacer tanto con una expresión en la línea Parámetro como con validación. Más adelante se examinarán casos similares en detalle.

Cuándo se usa la validación

La validación se usa en casos donde es necesario vincular el valor de un sensor con otro. Desde el punto de vista de la aplicación práctica, se pueden destacar los siguientes casos para el uso de validación:

  • Un sensor afecta a otro a nivel físico (por ejemplo, el sensor del nivel de combustible muestra un valor incorrecto cuando hay un salto en las lecturas del sensor de voltaje);

  • Es necesario vincular varios sensores en un esquema lógico (por ejemplo, es necesario crear un sensor de apertura de las puertas delanteras del automóvil, que se activará cuando se active el sensor de apertura de la puerta izquierda o el sensor de apertura de la puerta derecha);

  • Es necesario mostrar un informe para un intervalo de tiempo en cuyo inicio se usaba un sensor antiguo con un parámetro, y al final, un nuevo sensor con otro parámetro (por ejemplo, anteriormente en el camión se usaba un sensor del nivel de combustible (SNC) menos preciso con una tabla de calibración, y luego se reemplazó por un SNC más preciso con otra tabla de calibración);

  • Hay varios sensores que miden el mismo indicador y es necesario mostrar el valor de uno u otro sensor (por ejemplo, el vehículo tenía un SNC incorporado menos preciso, se instaló un SNC más preciso adicional, y generalmente se usan las lecturas del segundo, pero si ocurre un error en ellas, es mejor mostrar el valor del primer sensor, aunque sea meno preciso);

  • El parámetro contiene información sobre diferentes sistemas de la unidad, y es necesario extraer solo una parte específica (por ejemplo, los primeros 5 bits del parámetro informan sobre el voltaje, y los siguientes tienen otro propósito, y del parámetro es necesario extraer solo los bits relacionados con el voltaje);

  • Es necesario realizar algunos cálculos aritméticos que incluyen valores de varios sensores (por ejemplo, se requiere ver en tiempo real el consumo de combustible en km/l, que se calcula dividiendo la lectura del odómetro relativo por las lecturas del sensor del consumo de combustible instantáneo).

Tipos de validación

En Wialon existen 12 tipos de validación. No verá tal división en la interfaz del sistema de rastreo satelital, pero para simplificar, todos los tipos se pueden dividir condicionalmente en 3 grupos.

GrupoTipos de validaciónComentarioAlternativas
Aritmético
  • Sumar
  • Restar validador del sensor
  • Restar sensor del validador
  • Multiplicar
  • Dividir el sensor por el validador
  • Dividir el validador por el sensor

Se puede prescindir fácilmente de estos tipos.

Existen y son simples.

Algorítmico
  • Comprobar no nulos
  • Reemplazar sensor por validador en caso de error

Ambos tipos se usan con frecuencia.

Para el segundo tipo hay una alternativa simple.

Lógico
  • Y lógico
  • O lógico
  • Operación Y
  • Operación O

Los tipos menos comprensibles, de los cuales principalmente se usan solo los dos primeros.

Existen, pero no son simples.

Examinemos cada grupo con más detalle.

Validación aritmética

Este grupo incluye operaciones aritméticas simples: suma, resta, multiplicación y división.

Se puede prescindir fácilmente de estos tipos de validación, ya que se puede lograr un resultado similar usando una expresión en la línea Parámetro. Para referirse al valor de otro sensor en la expresión, es necesario indicar el nombre de ese sensor entre corchetes (por ejemplo, [Fuel Level]).

En el siguiente ejemplo se examina una pequeña diferencia entre estos enfoques.

 Ejemplo

Supongamos que de la unidad llegan mensajes que contienen los siguientes parámetros:

  • odometer — muestra la distancia en kilómetros recorrida entre los dos últimos mensajes;
  • fuel_consumption — muestra el combustible en litros consumido entre los dos últimos mensajes.

El cliente necesita un sensor que muestre en tiempo real el consumo en km/l.

Variante de solución mediante validación:

  1. Crear un Sensor del consumo de combustible instantáneo con el nombre SCCI, basado en el parámetro fuel_consumption.

  2. Crear un Sensor personalizado con el nombre Consumo y unidades de medida km/l. Como parámetro, indicar odometer. En las propiedades del sensor Consumo, indicar el sensor SCCI como validador y seleccionar el tipo de validación Dividir el sensor por el validador.

Variante de solución mediante expresión:

  1. Crear un sensor de tipo Odómetro relativo con el nombre Kilometraje relativo, basado en el parámetro odometer.

  2. Crear un Sensor del consumo de combustible instantáneo con el nombre SCCI, basado en el parámetro fuel_consumption.
  3. Crear un Sensor personalizado con el nombre Consumo y unidades de medida km/l. Usar una fórmula con los nombres de los sensores creados anteriormente entre corchetes: [Kilometraje relativo]/[SCCI].

Como se puede notar fácilmente, al usar validación es suficiente crear no 3, sino solo 2 sensores, pero en este caso ningún sensor mostrará el valor del kilometraje entre mensajes. Sin embargo, si para resolver otras tareas necesita crear un sensor de tipo Odómetro relativo, entonces en ese caso la solución usando una expresión será más conveniente.

Validación algorítmica

Este grupo incluye solo 2 tipos de validación, cada uno de los cuales merece consideración.

Comprobar no nulos

Este tipo de validación es uno de los más utilizados. Permite ignorar las lecturas erróneas del sensor validado, cuya presencia se determina por el valor cero del sensor validador.

La situación más común de aplicación es la siguiente: un sensor conectado al rastreador puede mostrar datos incorrectos cuando el voltaje es insuficiente.

 Ejemplo

Supongamos que en la unidad se han creado los siguientes sensores:

  • Sensor del nivel de combustible con el nombre SNC, basado en el parámetro fuel_lvl;
  • Sensor de voltaje con el nombre Voltaje, basado en el parámetro pwr_ext.

Cuando el valor del sensor de voltaje cae por debajo de 9 voltios, el sensor analógico de nivel de combustible muestra valores erróneos. Para un control correcto del combustible, es necesario eliminar las lecturas falsas.

En este caso es necesario:

  1. Crear un Sensor digital personalizado con el nombre Voltaje suficiente basado en la expresión [Voltaje].

  2. Agregar una tabla de cálculo con las siguientes filas:
    X=0; a=0; b=0
    X=9; a=0; b=1

  3. En las propiedades del SNC, indicar el sensor Voltaje suficiente como validador y seleccionar el tipo de validación Comprobar no nulos.

Ahora, cuando el voltaje esté por debajo de 9 voltios, el sensor Voltaje suficiente tendrá un valor de 0 (Apagado), por lo tanto, no pasará la verificación de comprobar no nulos, debido a lo cual las lecturas del SNC se reemplazarán por un guion (N/A). Esto permitirá excluir datos erróneos del análisis.

El uso de la validación Comprobar no nulos es posible no solo en situaciones donde los sensores están relacionados entre sí a nivel físico (en el ejemplo anterior, el funcionamiento del sensor se ve afectado por un voltaje insuficiente), sino también en casos donde se observa una correlación entre los valores de los sensores. Por ejemplo, si nota que por alguna razón el SNC muestra valores falsos cuando el sensor de temperatura muestra un valor de 255, esto es suficiente para usar este tipo de validación.

Reemplazar sensor por validador en caso de error

Este tipo de validación también es bastante popular. La lógica de su funcionamiento es simple: si el sensor validado tiene un valor erróneo, se reemplaza por el valor del sensor validador.

Este es el único tipo de validación que puede reaccionar a valores erróneos del sensor que se muestran como un guion o N/A. Todos los demás tipos de validación, si hay un error en la entrada, mostrarán un error en la salida.

Este tipo es adecuado para situaciones en las que es necesario mostrar el valor de dos sensores como si fuera un solo sensor. Generalmente, puede haber dos razones para esto: o bien se reemplazó un sensor antiguo por uno nuevo, y los informes deben contener información tanto del intervalo de funcionamiento del sensor antiguo como del nuevo, o bien la unidad tiene simultáneamente dos sensores, pero uno de ellos muestra periódicamente un error, y en ese momento es necesario mostrar el valor del otro sensor. Consideremos ambos casos con ejemplos.

 Ejemplo 1

Supongamos que dentro del intervalo del informe, de la unidad llegaban mensajes que contenían los siguientes parámetros:

  • adc1 — muestra el nivel de combustible en voltios según el sensor del nivel de combustible instalado anteriormente (en los nuevos mensajes el parámetro está ausente);
  • param4 — muestra el nivel de combustible en voltios según el nuevo sensor del nivel de combustible (en los mensajes antiguos el parámetro está ausente).

Es necesario configurar los sensores de manera que en el informe se puedan mostrar datos sobre el combustible tanto del sensor antiguo como del nuevo.

En este caso es necesario:

  1. Crear un sensor del nivel de combustible con el nombre SNC (antiguo), basado en el parámetro adc1. En su tabla de cálculo del SNC (antiguo) es necesario introducir la antigua tabla de calibración para convertir voltio a litros.

  2. Crear un sensor del nivel de combustible con el nombre SNC, basado en el parámetro param4. En su tabla de cálculo es necesario introducir la nueva tabla de calibración para convertir voltios a litros. En las propiedades del SNC, indicar el sensor SNC (antiguo) como validador y seleccionar el tipo de validación Reemplazar sensor por validador en caso de error.

Esta tarea se puede resolver usando una expresión en la línea Parámetro, específicamente usando la operación Comprobación de disponibilidad del valor. Para esto es necesario:

  1. Crear un sensor del nivel de combustible con el nombre SNC (antiguo), basado en el parámetro adc1. En su tabla de cálculo es necesario introducir la antigua tabla de calibración para convertir voltios a litros.
  2. Crear un sensor del nivel de combustible con el nombre SNC, basado en el parámetro param4|[SNC (antiguo)]. En su tabla de cálculo es necesario introducir la nueva tabla de calibración para convertir voltios a litros.
 Ejemplo 2

Supongamos que de la unidad llegan mensajes que contienen los siguientes parámetros:

  • fls_rs485 — muestra el nivel de combustible en voltios según el sensor del nivel de combustible instalado;
  • fuel_lvl — muestra el nivel de combustible en litros según el sensor del nivel de combustible incorporado por el fabricante.

El SNC instalado es más preciso, pero a veces muestra un error, y en ese momento el cliente quiere ver las lecturas del SNC incorporado por el fabricante.

En este caso es necesario:

  1. Crear un Sensor personalizado con el nombre SNC incorporado, basado en el parámetro fuel_lvl.

  2. Crear un sensor del nivel de combustible con el nombre SNC, basado en el parámetro fls_rs485. En su tabla de cálculo es necesario introducir la tabla de calibración para convertir voltios a litros. En las propiedades del SNC, indicar el sensor SNC incorporado como validador y seleccionar el tipo de validación Reemplazar sensor por validador en caso de error.

Validación lógica

Este grupo incluye 4 tipos de validación:

  • Y lógico y O lógico — trabajan con valores lógicos (en Wialon se llaman digitales y son Encendido/Apagado o 1/0);
  • Operación Y y Operación O — trabajan por separado con cada bit de los números.

Consideremos estas variantes con ejemplos.

Y lógico / O lógico

Se puede decir que la operación Y lógico da un valor de 1 como resultado solo cuando ambos valores de entrada son 1, y O lógico — si al menos uno de los valores de entrada es 1.

Si suponemos que dos sensores están vinculados por validación, y uno de ellos se basa en el parámetro a, y el otro en el parámetro b, todos los posibles resultados se pueden describir en una tabla:

Tabla de verdad
aba Y ba O b

0

000
0101

1

001

1

111

El valor del sensor validado después de realizar las operaciones lógicas Y/O siempre será 0 o 1 (en este caso no se considera el error, es decir, un guion o N/A).

En la entrada también se esperan solo valores 0 o 1, sin embargo, en Wialon es posible una situación en la que se ingresen otros valores numéricos a la entrada de la validación. En tal caso, el sistema funcionará de la siguiente manera:

  • Solo 0 se percibe como 0 (Apagado).
  • Cualquier otro valor numérico (por ejemplo, 0.01, -0.01, 100500, -777, etc.) se percibirá como 1 (Encendido).

Idealmente, se deben evitar tales situaciones y usar una tabla de cálculo para convertir todos los valores entrantes solo en 0 o 1.

 Ejemplo 1

Supongamos que de la unidad llegan mensajes que contienen los siguientes parámetros:

  • in3 — igual a 0 cuando el equipo auxiliar está apagado, o 1 cuando está encendido;
  • in4 — igual a 0 cuando la puerta trasera está cerrada, o 1 cuando está abierta.

Es necesario crear un sensor que se active cuando el equipo auxiliar esté encendido y la puerta trasera esté abierta.

En este caso es necesario:

  1. Crear un Sensor digital personalizado con el nombre Equipo auxiliar, basado en el parámetro in3.

  2. Crear un Sensor digital personalizado con el nombre Puerta trasera abierta con equipo en funcionamiento, basado en el parámetro in4. Luego seleccionar el sensor Equipo auxiliar como validador y elegir el tipo de validación Y lógico.

Esta tarea también se puede resolver usando una expresión en la línea Parámetro. Para esto, es suficiente crear un Sensor digital personalizado con el nombre Puerta trasera abierta con equipo en funcionamiento, basado en la expresión in3*in4.

Este enfoque funcionará si los parámetros solo pueden tomar valores de 0 o 1.

 Ejemplo 2

Supongamos que de la unidad llegan mensajes que contienen los siguientes parámetros:

  • door11 — igual a 0 cuando la puerta delantera izquierda está cerrada, o 1 cuando esta puerta está abierta;
  • door12 — igual a 0 cuando la puerta delantera derecha está cerrada, o 1 cuando esta puerta está abierta.

Es necesario crear un sensor que se active cuando al menos una de las puertas delanteras del automóvil esté abierta.

En este caso es necesario:

  1. Crear un Sensor digital personalizado con el nombre Puerta delantera izquierda abierta, basado en el parámetro door11.

  2. Crear un Sensor digital personalizado con el nombre Apertura de puertas delanteras, basado en el parámetro door12. Luego indicar el sensor Puerta delantera izquierda abierta como validador y seleccionar el tipo de validación O lógico.

Esta tarea también se puede resolver usando una expresión en la línea Parámetro y una tabla de cálculo:

  1. Crear un Sensor digital personalizado con el nombre Apertura de puertas delanteras, basado en la expresión door11+door12.
  2. Agregar una tabla de cálculo con las siguientes filas: 
    X=0; a=0; b=0
    X=1; a=0; b=1

Este enfoque funcionará si los parámetros solo pueden tomar valores de 0 o 1.

Operación Y

Esta validación es útil para extraer una parte específica de bits de un parámetro. Implica la ejecución bit a bit de la Operación Y, como se demuestra a continuación.

Primero, usando la aplicación Calculadora en modo programador o herramientas en línea similares, es necesario convertir el número en cuestión del sistema decimal (DEC) al sistema binario (BIN).

Por ejemplo, el resultado de la Operación Y entre los números 122 y 15 tendrá el siguiente aspecto:


DECBIN
número 112201111010
número  21500001111

resultado de la Operación Y

1000001010

Si en el segundo número el bit es 0 (resaltado en rojo), entonces en el resultado este bit también será 0. Y si en el segundo número el bit es 1 (resaltado en verde), entonces en el resultado este bit tendrá el mismo valor que en el primer número. Se puede decir que usando la representación binaria del número 15 se realizó un filtrado del número 122 de tal manera que solo quedaron los 4 bits menos significativos.

 Ejemplo 1

Supongamos que de la unidad llegan mensajes que contienen un parámetro de 16 bits can_a1, que contiene información sobre diferentes sistemas de la unidad. Según la documentación del rastreador, en los 8 bits menos significativos del parámetro se encuentra la información sobre el nivel de combustible. Es necesario verificar esto y extraer la parte del parámetro de los 8 bits menos significativos para crear un sensor del nivel de combustible basado en ellos.

Por ejemplo, cuando un tanque de 100 litros está lleno al 40%, el valor del parámetro can_a1 puede tener los siguientes valores:

DECBIN
169980100001001100110
267260110100001100110
408061001111101100110
390141001100001100110

Como se puede notar fácilmente, el valor del parámetro can_a1 puede cambiar en la representación decimal, pero los 8 bits menos significativos del parámetro permanecen sin cambios (están resaltados en azul), ya que la cantidad de combustible en el tanque no cambia. Si convertimos los valores de los 8 bits menos significativos al sistema decimal, obtenemos:

(BIN) 0110 0110 = (DEC) 102

Y el valor máximo que se puede almacenar en 8 bits es:

(BIN) 1111 1111 = (DEC) 255

Usando operaciones aritméticas simples, verificamos que 102/255 = 40/100 = 0.4. De esto se puede concluir que los 8 bits menos significativos del parámetro realmente corresponden a un tanque lleno al 40%.

Para extraer la primera parte del parámetro es necesario:

  1. Crear un Sensor personalizado con el nombre 8 bits menos significativos basado en el parámetro const255.

  2. Crear un sensor del nivel de combustible con el nombre SNC basado en el parámetro can_a1. Luego seleccionar el sensor 8 bits menos significativos como validador y elegir el tipo de validación Operación Y. También es necesario introducir en la tabla de cálculo del sensor una tabla de calibración para convertir el resultado a litros.

Como en diferentes mensajes cada bit puede tener diferentes valores, designaremos los bits menos significativos como b y los más significativos como B:


DECBIN
can_a1
BBBBBBBBbbbbbbbb
número 22550000000011111111
resultado de la Operación Y
00000000bbbbbbbb

Como resultado, usando la representación binaria del número 255 se realizó un filtrado del parámetro can_a1 de tal manera que solo quedaron los 8 bits menos significativos.

Esta tarea se puede resolver usando una expresión en la línea Parámetro.

Para esto es necesario crear un sensor del nivel de combustible con el nombre SNC, basado en la siguiente expresión:

const128*can_a1:8+const64*can_a1:7+const32*can_a1:6+const16*can_a1:5+const8*can_a1:4+
const4*can_a1:3+const2*can_a1:2+const1*can_a1:1

Se puede obtener más información sobre esta solución en el artículo sobre trabajo con bits.

 Ejemplo 2

Supongamos que de la unidad llegan mensajes que contienen un parámetro de 16 bits can_b2, que contiene información sobre diferentes sistemas de la unidad. Según la documentación del rastreador, en los 8 bits más significativos del parámetro se encuentra la información sobre el nivel de combustible. Es necesario verificar esto y extraer la parte del parámetro de los 8 bits más significativos para crear un sensor del nivel de combustible basado en ellos.

Por ejemplo, cuando un tanque de 200 litros está lleno al 60%, el valor del parámetro can_b2 puede tener los siguientes valores:

DECBIN
392821001100101110010
392621001100101011110
393621001100111000010
392861001100101110110

Como se puede notar fácilmente, el valor del parámetro can_b2 puede cambiar en la representación decimal, pero los 8 bits más significativos del parámetro permanecen sin cambios (están resaltados en azul), ya que la cantidad de combustible en el tanque no cambia. Si convertimos los valores de los 8 bits más significativos al sistema decimal, obtenemos:

(BIN) 1001 1001 = (DEC) 153

Y el valor máximo que se puede almacenar en 8 bits es:

(BIN) 1111 1111 = (DEC) 255

Usando operaciones aritméticas simples, verificamos que 153/255 = 120/200 = 0.6. De esto se puede concluir que los 8 bits más significativos del parámetro realmente corresponden a un tanque lleno al 60%.

Para extraer la segunda parte del parámetro es necesario:

  1. Crear un Sensor personalizado con el nombre 8 bits más significativos basado en el parámetro const65280.

  2. Crear un Sensor personalizado con el nombre Bits filtrados basado en el parámetro can_b2. Luego seleccionar el sensor 8 bits más significativos como validador y elegir el tipo de validación Operación Y.

  3. Crear un sensor del nivel de combustible con el nombre SNC basado en la expresión [Bits filtrados]/const256. En su tabla de cálculo es necesario introducir una tabla de calibración para convertir el resultado a litros.

Como en diferentes mensajes cada bit puede tener diferentes valores, designaremos los bits menos significativos como b y los más significativos como B:


DECBIN
can_b2
BBBBBBBBbbbbbbbb
número 2652801111111100000000
resultado de la Operación Y
BBBBBBBB00000000
resultado después de dividir por 256
00000000BBBBBBBB

El desplazamiento de bits varios lugares hacia abajo se realiza dividiendo por 2 elevado a la potencia igual al número de lugares a desplazar. En este caso, es un desplazamiento de 8 lugares, por lo que la división se realiza por 28 = 256.

Como resultado, usando la representación binaria del número 65280 se realizó un filtrado del parámetro can_b2 de tal manera que solo quedaron los 8 bits más significativos, y luego se convirtieron en bits menos significativos mediante el desplazamiento.

Esta tarea se puede resolver usando una expresión en la línea Parámetro.

Para esto es necesario crear un sensor del nivel de combustible con el nombre SNC, basado en la siguiente expresión:

const128*can_b2:16+const64*can_b2:15+const32*can_b2:14+const16*can_b2:13+const8*can_b2:12+
const4*can_b2:11+const2*can_b2:10+const1*can_b2:9

Se puede obtener más información sobre esta solución en el artículo sobre trabajo con bits.

Operación O

Esta validación implica la ejecución bit a bit de la Operación O, como se demuestra a continuación.

Primero, usando la aplicación Calculadora en modo programador o herramientas en línea similares, es necesario convertir el número en cuestión del sistema decimal (DEC) al sistema binario (BIN).

Por ejemplo, el resultado de la Operación O entre los números 122 y 210 tendrá el siguiente aspecto:


DECBIN
número 112201111010
número 221011010010
resultado de la Operación O25011111010

Si al menos uno de los bits en los dos primeros números es 1, entonces en el resultado este bit será 1 (resaltado en verde). Y si ambos bits en los dos primeros números son 0, entonces en el resultado este bit será 0 (resaltado en rojo).

Oleg Zharkovsky,Customer Service Engineer

Sensores: trabajo con bits
  • technical_consulting
  • sensor_parameters

En la mayoría de los casos, los parámetros que llegan de los rastreadores tienen un formato fijo y describen un estado específico de la unidad, por lo que pueden ser interpretados inequívocamente por Wialon y mostrados en los mensajes. Sin embargo, algunos rastreadores pueden escribir información de contenido diferente o incluso varios bloques de información en un solo parámetro. En tal caso, para su correcta visualización en Wialon, será necesario configurar el sensor de una manera especial. Para esto, es necesario utilizar el control de parámetros bit a bit, que es de lo que trata este artículo.

Problemática

Existen rastreadores que permiten transmitir parámetros personalizados, cuyo contenido puede variar dependiendo de la configuración del dispositivo.

Por ejemplo, en Wialon puede mostrarse el parámetro user_value = 2646793773, aunque desde el lado del rastreador se pretendía transmitir uno de los siguientes valores:

  • 2646793773 — número entero sin signo;
  • 56877 y 40386 — varios números enteros;
  • −499310125 — número entero con bit de signo;
  • −5.15811×1021 o −0.00000000000000000000515811 — número de punto flotante,
  • etc.

Teóricamente, este problema se puede resolver desde el lado de Wialon mediante la modificación del script que analiza los datos que llegan del rastreador. Sin embargo, esto afectaría a todos los usuarios, y ellos pueden tener diferentes configuraciones de rastreadores, es decir, pueden esperar diferentes resultados del análisis de datos por parte del script. Afortunadamente, existe un método para resolver el problema que es adecuado para todos: crear un sensor con la fórmula necesaria. Además, se basará en la representación del parámetro en el sistema binario, ya que ya sabemos que la representación en el sistema decimal puede ser diferente. En forma binaria, el valor del parámetro del ejemplo anterior se escribe de la siguiente manera: 1001 1101 1100 0010 1101 1110 0010 1101. Ahora veamos cómo trabajar con el sistema binario.

Base teórica

En esta sección se examinará la información necesaria para aplicar las fórmulas posteriores.

Sistemas numéricos

En matemáticas se utilizan diferentes sistemas numéricos. Los más familiares para entender son los sistemas numéricos posicionales, en los que el valor de cada dígito depende de su posición. Por ejemplo, en el sistema decimal, el dígito 1, dependiendo de su posición en el número, puede significar una unidad (1), una decena (10), una centena (100) y así sucesivamente.

El número de dígitos utilizados en los sistemas numéricos posicionales se llama base.

En la tabla siguiente se muestran varios sistemas numéricos comunes:

Nombre

Notación

Base

Área de aplicación

Símbolos utilizados

Binario

BIN2

Matemática discreta, informática, programación

0, 1

Decimal

DEC10

En todas partes

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Hexadecimal

HEX16

Informática, programación

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Para una rápida conversión de números de un sistema numérico a otro, se puede utilizar la aplicación Calculadora (está preinstalada en cada computadora, o se pueden encontrar sus análogos en Internet) en modo Programador (o similar).

Los números en Wialon se muestran en el sistema decimal. Las excepciones son los parámetros de texto, en los que se puede escribir un número (por ejemplo, el código hexadecimal del conductor), así como la visualización de entradas y salidas digitales en formato I/O.

Se puede inventar y usar cualquier sistema numérico, por ejemplo, el sistema de base 13, pero no es de uso común, lo que puede llevar a dificultades al analizar los datos en el lado receptor.

El uso de diferentes sistemas numéricos tiene no solo razones históricas o culturales, sino también fundamentos prácticos. El sistema binario, poco familiar para las personas, simplifica significativamente los cálculos matemáticos para los dispositivos electrónicos. Además, el sistema binario es conveniente desde el punto de vista de la simplicidad de reconocimiento de valores en presencia de ruido, ya que es más fácil distinguir la ausencia de voltaje de su presencia que determinar un nivel específico de voltaje de 0 a 9.

Bits y bytes

El sistema binario y el código binario son términos diferentes. El primero se refiere a las matemáticas (teoría), y el segundo principalmente a la tecnología digital (aplicación práctica). Pero en muchos aspectos estos términos se superponen, por lo que más adelante en el artículo saltaremos entre ellos, lo que no debería afectar la comprensión del tema al nivel de inmersión que necesitamos.

Bit es un dígito del código binario.

Byte es un conjunto de 8 bits.

Nibble es un grupo de 4 bits, que corresponde a un símbolo en el sistema hexadecimal.

Para facilitar la percepción, los números binarios a menudo se dividen en nibbles con espacios. Es decir, en lugar de escribir 10011101110000101101111000101101 se usará la escritura 1001 1101 1100 0010 1101 1110 0010 1101.

La numeración de bits en Wialon comienza desde 1. Usualmente, la numeración de bits comienza desde 0, por lo que las fórmulas que verá a continuación pueden diferir ligeramente de las encontradas en Internet u otras fuentes.

Números de punto flotante

Un número de punto flotante es una forma exponencial de representar números reales, en la que el número se almacena en forma de mantisa y exponente.

A continuación se muestran varios ejemplos de tales números:

125000 = 1.25 × 105 — aquí la mantisa es 1.25 y el exponente es 5.

0.000000125 = 1.25 × 10−7 — la mantisa es 1.25 y el exponente es −7.

125000000000000 = 1.25 × 1014 — la mantisa es 1.25 y el exponente es 14.

La ventaja de usar tal notación radica en la posibilidad de ampliar significativamente el rango de valores transmitidos mientras se mantiene el número de bits utilizados.

Para representar números de punto flotante en dispositivos digitales, se utiliza más comúnmente el estándar IEEE 754.

Aplicación práctica

En esta sección se examinarán diferentes variantes de parámetros de usuario y fórmulas para su interpretación en Wialon.

Ejemplos de su uso se pueden encontrar en las instrucciones.

Conversión de número binario a decimal entero

Para entender la fórmula de conversión, primero vale la pena mirar los números decimales desde un ángulo un poco inusual. Consideremos el número decimal 125. Consiste en 1 centena, 2 decenas y 5 unidades: 125 = 1 × 100 + 2 × 10 + 5 × 1.

Como ya sabemos, la base del sistema decimal es el número 10. También notemos que las centenas están en el tercer lugar, las decenas en el segundo, las unidades en el primero. Teniendo esto en cuenta, el número se puede representar como la suma de los valores de cada posición, multiplicados por la base del sistema numérico elevada a la potencia igual al número de la posición menos uno:

125 = 1 × 103−1 + 2 × 102−1 + 5 × 101−1 = 1 × 1022 × 101 + 5 × 100

Para calcular un número decimal entero a partir de un número binario, se usa la misma fórmula, pero la base será el número 2: la suma de los bits multiplicados por la base del sistema numérico elevada a la potencia igual al número del bit menos uno.

donde d es el número en el sistema decimal, i es el número del bit del número binario, N es el número de bits, bi es el valor del i-ésimo bit.

También esta fórmula se puede presentar de la siguiente manera:

d = bN × 2N−1 + ... + bi × 2i−1 + ... + b2 × 22−1 + b1 × 21−1

Consideremos un ejemplo con el mismo número:

BIN) 0111 1101 = (DEC) 0 × 28−1 + 1 × 27−1 + 1 × 26−1 + 1 × 25−1 + 1 × 24−1 + 1 × 23−1 + 0 × 22−1 + 1 × 21−1 =

= (DEC) 0 × 27 + 1 × 26 + 1 × 25 + 1 × 24 + 1 × 23 + 1 × 22 + 0 × 21 + 1 × 20 = (DEC) 26 + 25 + 24 + 23 + 22 + 20 =

= (DEC) 64 + 32 + 16 + 8 + 4 + 1 = (DEC) 125.

Esta fórmula es clave para trabajar con bits en Wialon. Todas las demás transformaciones se realizan sobre su base.

Si el valor llega en un parámetro con el nombre user_value, entonces teniendo en cuenta la sintaxis de Wialon, la fórmula tomará la siguiente forma:

user_value:8*const2^const7+user_value:7*const2^const6+user_value:6*const2^const5+user_value:5*const2^const4+user_value:4*const2^const3+user_value:3*const2^const2+user_value:2*const2^const1+user_value:1*const2^const0

Este formato de escritura de la fórmula parece más largo, sin embargo, permite rastrear fácilmente la numeración de bits y potencias, lo que permite no cometer errores al escribir la fórmula. Pero si conoce bien las potencias de dos, puede usar una versión simplificada de esta fórmula:

user_value:8*const128+user_value:7*const64+user_value:6*const32+user_value:5*const16+user_value:4*const8+user_value:3*const4+user_value:2*const2+user_value:1*const1

La longitud de la fórmula de conversión dependerá del número de bits considerados, por lo que no será posible copiarla directamente del artículo. Si según el protocolo del rastreador se asigna 1 byte (8 bits) al valor del parámetro, la fórmula será similar a la mostrada arriba (solo será necesario reemplazar el nombre del parámetro en ella). Y si se asignan 3 bytes al parámetro, la fórmula será 3 veces más larga y usará constantes hasta 2^23 = 8388608.

Extracción de parte del parámetro

Como se mencionó anteriormente, a veces un solo parámetro puede contener varios valores diferentes. En tal caso, es necesario usar la fórmula dada en la sección anterior, pero considerar solo algunos bits.

Como ejemplo, consideremos el parámetro user_value con el valor (DEC) 32200 = (BIN) 0111 1101 1100 1000. Su primer byte describe el valor del primer contador, y el segundo byte, el valor de otro contador. Es necesario crear dos sensores separados con fórmulas que usarán solo los bytes necesarios.

Parámetro

user_value

Número de bit del valor original

16151413121110987654321

Valor del bit

0111110111001000

Número de bit del valor buscado

8765432187654321

Sensor

Contador #2

Contador #1

La fórmula para el primer sensor será similar a la fórmula de la sección anterior, ya que los números de bits del valor original y buscado coinciden:

user_value:8*const2^const7+user_value:7*const2^const6+user_value:6*const2^const5+user_value:5*const2^const4+user_value:4*const2^const3+user_value:3*const2^const2+user_value:2*const2^const1+user_value:1*const2^const0

La fórmula para el segundo sensor será diferente, ya que nos referiremos a los bits 9-16, pero los percibiremos como bits 1-8:

user_value:16*const2^const7+user_value:15*const2^const6+user_value:14*const2^const5+user_value:13*const2^const4+user_value:12*const2^const3+user_value:11*const2^const2+user_value:10*const2^const1+user_value:9*const2^const0

Como resultado, de un solo número 32200 podremos obtener:

(BIN) 1100 1000 = (DEC) 200 — valor del primer contador.

(BIN) 0111 1101 = (DEC) 125 — valor del segundo contador.

Consideración del signo del número

En algunos casos, el valor del bit más significativo puede no ser significativo, sino de signo, es decir, contener información no sobre la magnitud del valor, sino sobre si este número es positivo o negativo.

Por ejemplo, si en el parámetro de usuario el rastreador envía el valor 13 o −5, Wialon no lo sabe, y en ambos casos veremos el mismo parámetro user_value = 13, ya que:

(DEC) 13 = (BIN) 1101

(DEC) −5 = (BIN) 1101 — el bit más significativo es responsable del signo menos, y (BIN) 101 = (DEC) 5.

Para interpretar correctamente el bit de signo, es necesario modificar la fórmula de conversión de número binario a decimal entero, agregando al principio −1 elevado a la potencia del bit más significativo:

donde d es el número en el sistema decimal, i es el número del bit del número binario, N es el número de bits, bes el valor del i-ésimo bit.

Esta fórmula también se puede representar de la siguiente manera:

d = (−1)bN × (bN-1 × 2(N−1)−1 + ... + bi × 2i−1 + ... + b2 × 22−1 + b1 × 21−1)

Esta fórmula funciona porque (−1)= 1, y (−1)1= −1, lo que permite representar el signo del número con un solo bit.

Si asumimos que el bit de signo es el bit número 32, para tenerlo en cuenta en Wialon es necesario añadir la siguiente fórmula al principio de la expresión en el sensor:

(const-1)^user_value:32*...

Este enfoque se utiliza en el estándar IEEE 754. Sin embargo, los fabricantes de equipos pueden utilizar otros enfoques para considerar el signo del número (por ejemplo, restando el desplazamiento o usando el complemento a dos), por lo que puede ser que el enfoque descrito anteriormente no sea adecuado para todos los tipos de rastreadores y sensores.


Conversión de un número binario a un número decimal de punto flotante

Se trata de la conversión de un número binario normalizado al formato de 32 bits según el estándar IEEE 754. Este estándar no implica la transmisión del número de punto flotante en sí, sino la transmisión de ciertos valores a partir de los cuales se puede calcular el número buscado según la siguiente fórmula:

d = (−1)S × 2(E−127) × (1 + M/223),

donde d es el número en el sistema decimal, S es el signo del número, E es el exponente desplazado, M es el resto de la mantisa normalizada.

Para aplicar esta fórmula no se requiere una comprensión completa de la misma, ya que el estándar describe en qué bits se almacenan S, E y M, que simplemente deben ser sustituidos en la expresión.

 Información adicional

En la fórmula proporcionada, no se utiliza el orden del número de punto flotante, que puede ser negativo (por ejemplo, 1.25×10−7), sino el exponente desplazado E, que siempre tiene un valor positivo. El desplazamiento inverso se logra restando 127 del exponente desplazado ya en la fórmula, lo que permite obtener valores negativos.

La mantisa binaria normalizada está en el rango [1; 2), es decir, su primer bit siempre es 1. Por lo tanto, en el estándar IEEE 754 este uno no se envía (ya que se conoce de antemano), sino que se añade en la fórmula en la etapa de cálculo del resultado. Esto permite ahorrar un bit y obtener una mayor precisión del valor transmitido. En la fórmula proporcionada, M no es la mantisa, sino su resto.

Como ejemplo, consideremos el número −5.15811×10−21, que se mostrará en el parámetro como user_value = 2646793773:

(DEC) 2646793773 = (BIN) 1001 1101 1100 0010 1101 1110 0010 1101

Bit de signo (S)

Exponente desplazado (E)

Resto de la mantisa normalizada (M)

3231302928272625242322212019181716151413121110987654321
10011101110000101101111000101101

Según la fórmula de conversión de número binario a decimal entero, obtenemos los valores de M y E.

El resto de la mantisa normalizada M será igual a:

user_value:23*const2^const22+user_value:22*const2^const21+user_value:21*const2^const20+user_value:20*const2^const19+user_value:19*const2^const18+user_value:18*const2^const17+user_value:17*const2^const16+user_value:16*const2^const15+user_value:15*const2^const14+user_value:14*const2^const13+user_value:13*const2^const12+user_value:12*const2^const11+user_value:11*const2^const10+user_value:10*const2^const9+user_value:9*const2^const8+user_value:8*const2^const7+user_value:7*const2^const6+user_value:6*const2^const5+user_value:5*const2^const4+user_value:4*const2^const3+user_value:3*const2^const2+user_value:2*const2^const1+user_value:1*const2^const0

El exponente desplazado E será igual a:

user_value:31*const2^const7+user_value:30*const2^const6+user_value:29*const2^const5+user_value:28*const2^const4+user_value:27*const2^const3+user_value:26*const2^const2+user_value:25*const2^const1+user_value:24*const2^const0

Ahora escribimos la fórmula final teniendo en cuenta la sintaxis de Wialon:

(const-1^user_value:32)*const2^(user_value:31*const2^const7+user_value:30*const2^const6+
user_value:29*const2^const5+user_value:28*const2^const4+user_value:27*const2^const3+
user_value:26*const2^const2+user_value:25*const2^const1+user_value:24*const2^const0-const127)*(const1+
(user_value:23*const2^const22+user_value:22*const2^const21+user_value:21*const2^const20+
user_value:20*const2^const19+user_value:19*const2^const18+user_value:18*const2^const17+
user_value:17*const2^const16+user_value:16*const2^const15+user_value:15*const2^const14+
user_value:14*const2^const13+user_value:13*const2^const12+user_value:12*const2^const11+
user_value:11*const2^const10+user_value:10*const2^const9+user_value:9*const2^const8+
user_value:8*const2^const7+user_value:7*const2^const6+user_value:6*const2^const5+
user_value:5*const2^const4+user_value:4*const2^const3+user_value:3*const2^const2+
user_value:2*const2^const1+user_value:1*const2^const0)/const2^const23)

O de forma simplificada:

(const-1^user_value:32)*const2^(user_value:31*const128+user_value:30*const64+user_value:29*const32+
user_value:28*const16+user_value:27*const8+user_value:26*const4+user_value:25*const2+
user_value:24*const1-const127)*(const1+(user_value:23*const4194304+user_value:22*const2097152+
user_value:21*const1048576+user_value:20*const524288+user_value:19*const262144+
user_value:18*const131072+user_value:17*const65536+user_value:16*const32768+user_value:15*const16384+
user_value:14*const8192+user_value:13*const4096+user_value:12*const2048+user_value:11*const1024+
user_value:10*const512+user_value:9*const256+user_value:8*const128+user_value:7*const64+
user_value:6*const32+user_value:5*const16+user_value:4*const8+user_value:3*const4+user_value:2*const2+
user_value:1*const1)/const8388608)

Al sustituir los valores numéricos, obtenemos:

(−1)1 × 2(59−127) × (1 + 4382253/223) = −0.00000000000000000000515811 = −5.15811×10−21

Como podemos ver, el resultado obtenido difiere significativamente del valor inicial del parámetro 2646793773.

La fórmula de conversión de un número binario normalizado al formato de 32 bits IEEE 754 es única para todos los rastreadores, ya que se trata de un estándar específico. Si en la documentación del rastreador ve que un parámetro personalizado puede enviarse según el estándar IEEE 754, y usted elige este formato de envío, entonces para la interpretación en Wialon puede copiar la expresión para el sensor directamente de este artículo, reemplazando solo el nombre del parámetro user_value, pero sin cambiar los números de bits.

Del siguiente bloque puede copiar cómodamente la fórmula para la conversión de un número binario a un número decimal de punto flotante (formato de 32 bits según el estándar IEEE 754):

(const-1^user_value:32)*const2^(user_value:31*const128+user_value:30*const64+user_value:29*const32+user_value:28*const16+user_value:27*const8+user_value:26*const4+user_value:25*const2+user_value:24*const1-const127)*(const1+(user_value:23*const4194304+user_value:22*const2097152+user_value:21*const1048576+user_value:20*const524288+user_value:19*const262144+user_value:18*const131072+user_value:17*const65536+user_value:16*const32768+user_value:15*const16384+user_value:14*const8192+user_value:13*const4096+user_value:12*const2048+user_value:11*const1024+user_value:10*const512+user_value:9*const256+user_value:8*const128+user_value:7*const64+user_value:6*const32+user_value:5*const16+user_value:4*const8+user_value:3*const4+user_value:2*const2+user_value:1*const1)/const8388608)

Oleg Zharkovsky,Customer Service Engineer

Kilometraje incorrecto
  • technical_consulting
  • trips

Un kilometraje incorrecto puede afectar el cálculo de la velocidad promedio, el consumo promedio de combustible por kilómetro, los intervalos de mantenimiento y, por supuesto, el indicador de distancia recorrida. Por lo tanto, es muy importante monitorear y resolver los problemas que surjan tanto en el lado del hardware como en el lado del software.

Si se encuentra con el problema de una determinación incorrecta del kilometraje en un informe, en el recorrido o en los mensajes, primero verifique qué tipo de contador de kilometraje está seleccionado en la pestaña Básicas en las propiedades de la unidad:

  • GPS
  • GPS + sensor de ignición
  • Sensor de kilometraje
  • Odómetro relativo

Una vez que sepa qué contador se utiliza en su unidad, seleccione la sección correspondiente del artículo.

1. GPS

La precisión del kilometraje cuando se usa este tipo de contador puede verse afectada por una conexión inestable con los satélites, fallas en la transmisión de datos, así como el uso de sensores adicionales. Consideremos estas opciones en más detalle.

a. Saltos de coordenadas y cronología incorrecta de mensajes

Los saltos de coordenadas pueden ocurrir debido a una mala conexión con los satélites del Sistema Global de Navegación por Satélite (GNSS). Para determinar si han ocurrido saltos, vaya a la pestaña Mensajes y solicite los datos para la unidad necesaria durante el período problemático. En el mapa verá un recorrido por la cual se podrá determinar la presencia de saltos: las coordenadas de los mensajes están significativamente alejadas de la ubicación real de la unidad.

En este ejemplo, un signo claro de problemas con la determinación de la ubicación de la unidad es el parámetro HDOP que tiene valores >1.

Wialon tiene una limitación: no más de 1 mensaje debe llegar de la unidad por 1 segundo. Si el rastreador transmite más de 1 mensaje en 1 segundo, la cronología de los mensajes puede verse alterada y el recorrido se verá de manera similar. La razón es la colocación incorrecta de mensajes con datos de posición (coordenadas) en la base de datos de Wialon. En tales casos, en la configuración del rastreador se debe reducir la frecuencia de envío de mensajes con datos.

Posibles soluciones:

  • Usar Filtración de validez de mensajes;
  • Cambiar la configuración de Detección de viajes.

En el ejemplo anterior, usando el sensor de ignición en la detección de viajes, se logró eliminar los saltos, ya que se registran en el intervalo sin ignición activada:

b. Uso del sensor de kilometraje

En algunos casos, el contador (pestaña Básicas en las propiedades de la unidad) funciona basado en coordenadas GPS, pero también se ha creado un sensor de kilometraje separado (pestaña Sensores en las propiedades de la unidad). En los informes, por ejemplo, con la tabla Viajes, la columna Kilometraje mostrará el valor según GPS (distancia total entre coordenadas), pero el valor de las columnas Kilometraje inicial/final se calculará mediante los siguientes métodos:

  • Si el valor del sensor de kilometraje está presente en el primer/último mensaje del intervalo, el sistema usa estos valores.
 Explicaciones

Supongamos que la unidad realmente recorrió 2 km, y los mensajes llegaron en el siguiente orden:

  1. 10 km
  2. -- km
  3. -- km
  4. 15 km

En la columna Kilometraje obtendremos 2 km (distancia total entre coordenadas sin tener en cuenta el sensor de kilometraje), en la columna Kilometraje inicial obtendremos 10 km (como en el mensaje), en la columna Kilometraje final obtendremos 15 km (como en el mensaje).

Un ejemplo similar, pero el valor del sensor de kilometraje solo está disponible en el último mensaje:

  1. -- km
  2. -- km
  3. -- km
  4. 15 km

En la columna Kilometraje obtendremos 2 km (distancia total entre coordenadas sin tener en cuenta el sensor de kilometraje), en la columna Kilometraje final obtendremos 15 km (como en el mensaje).

Y otro ejemplo donde el valor del sensor de kilometraje solo está disponible en el primer mensaje:

  1. 10 km
  2. -- km
  3. -- km
  4. -- km

En la columna Kilometraje obtendremos 2 km (distancia total entre coordenadas sin tener en cuenta el sensor de kilometraje), en la columna Kilometraje inicial obtendremos 10 km (como en el mensaje).

  • Si en el primer mensaje del intervalo no hay valor del sensor de kilometraje, el sistema busca el primer mensaje disponible con valor del sensor de kilometraje en este intervalo, y luego se resta de él el kilometraje hasta el inicio del viaje, calculado por coordenadas GPS.
 Explicaciones

Supongamos que la unidad realmente recorrió 2 km, y los mensajes llegaron en el siguiente orden:

  1. -- km
  2. -- km
  3. -- km
  4. 15 km

En la columna Kilometraje obtendremos 2 km (distancia total entre coordenadas sin tener en cuenta el sensor de kilometraje), en la columna Kilometraje inicial obtendremos 15 km — valor calculado por coordenadas GPS o 15 km - 2 km = 13 km, en la columna Kilometraje final obtendremos 15 km (como en el mensaje).

  • Si en el último mensaje del intervalo no hay valor del sensor de kilometraje, el sistema busca el último mensaje disponible con valor de kilometraje en este intervalo, y luego se le suma el kilometraje hasta el final del viaje, calculado por coordenadas GPS.
 Explicaciones

Supongamos que la unidad realmente recorrió 2 km, y los mensajes llegaron en el siguiente orden:

  1. 10 km
  2. -- km
  3. -- km
  4. -- km

En la columna Kilometraje obtendremos 2 km (distancia total entre coordenadas sin tener en cuenta el sensor de kilometraje), en la columna Kilometraje inicial obtendremos 10 km (como en el mensaje), en la columna Kilometraje final obtendremos 10 km + valor calculado por coordenadas GPS o 10 km + 2 km = 12 km.

  • Si en el primer y último mensaje no hay valor del sensor de kilometraje, el sistema busca el primer valor disponible del sensor, y luego resta de él el kilometraje calculado por coordenadas GPS para obtener el valor inicial, y para obtener el valor final, por el contrario, suma al valor del sensor el kilometraje calculado por coordenadas GPS.
 Explicaciones

Supongamos que la unidad realmente recorrió 2 km, y los mensajes llegaron en el siguiente orden:

  1. -- km
  2. 10 km
  3. 15 km
  4. -- km

En la columna Kilometraje obtendremos 2 km (distancia total entre coordenadas sin tener en cuenta el sensor de kilometraje), en la columna Kilometraje inicial obtendremos 10 km — valor calculado por coordenadas GPS hasta el primer mensaje del intervalo, en la columna Kilometraje final obtendremos 10 km + valor calculado por coordenadas GPS hasta el último mensaje del intervalo.

En tal situación, si debido a algún fallo el sensor de kilometraje no funcionaba y enviaba 0 km, es posible que aparezcan valores negativos de kilometraje:

En este ejemplo, para la unidad se creó un sensor de kilometraje basado en el parámetro can_mileage, que está ausente en los mensajes hasta el 18.12.2019 16:38:54:

Después de las 16:38 y en adelante, el parámetro siempre tiene un valor de 0, y el sensor, en consecuencia, un valor de 0 km.

Posibles soluciones:

  • Eliminar el sensor de kilometraje y cambiar completamente al kilometraje por coordenadas GPS;
  • Resolver el problema en el lado del hardware o cambiar a un parámetro con valores correctos.

En el ejemplo anterior, la solución fue eliminar el sensor y cambiar solo al kilometraje GPS, ya que los valores del parámetro no se leían del bus CAN.

2. GPS + sensor de ignición

La precisión del kilometraje cuando se usa este tipo de contador puede verse afectada por una conexión inestable con los satélites, fallas en la transmisión de datos, así como el uso de sensores adicionales. Sin embargo, una diferencia significativa del tipo GPS y una causa bastante frecuente de problemas en este tipo de contador será el uso de un sensor de ignición que funciona incorrectamente. Consideremos esta opción en más detalle.

Valor incorrecto del sensor de ignición

Como contador de kilometraje se ha seleccionado la opción GPS + sensor de ignición. Al construir el recorrido (a través de la pestaña Mensajes, Recorridos o Informes) el kilometraje es igual a 0 km, mientras que el recorrido en sí es visible en el mapa:

El recorrido en el mapa se construye según las coordenadas de los mensajes, mientras que el algoritmo de cálculo del kilometraje tiene en cuenta no solo las coordenadas y la distancia entre los mensajes, sino que también verifica si la ignición está activada.

En este ejemplo, no se ha creado un sensor de tipo Ignición para la unidad, por lo que el sistema ignora todos los mensajes y muestra 0 km de kilometraje:

Posibles soluciones:

  • Cambiar el contador de kilometraje a GPS;
  • Agregar un sensor de ignición que funcione correctamente.

En el ejemplo anterior, la unidad no envía un parámetro basado en el cual se pueda determinar el estado de la ignición, por lo que el problema se resolvió cambiando al tipo de contador GPS.

3. Sensor de kilometraje

Las lecturas de cualquier sensor, incluido el de kilometraje, pueden estar sujetas a factores externos como desconexión de energía, interferencias, fallos en los sensores, errores de calibración y configuraciones de sensores/rastreadores. Consideremos en detalle varios ejemplos de errores.

a. Reinicio de los valores del parámetro de kilometraje

Algunos rastreadores dejan de transmitir las lecturas del sensor de kilometraje durante un corto intervalo de tiempo (por ejemplo, debido a la desconexión de energía, interferencias en el circuito de alimentación, otros problemas con el equipo). En tales casos, el kilometraje total acumulado para la unidad puede diferir del último valor disponible del sensor:

En el ejemplo, el kilometraje total según el contador de kilometraje es de 26943 km, y según el sensor de kilometraje, solo 7069 km.

La razón es el reinicio del parámetro del sensor de kilometraje.

En tal situación, ocurre un reinicio a 0 km y luego nuevamente un crecimiento hasta 6452 km (en el ejemplo, tales reinicios se repitieron varias veces).

Posibles soluciones:

  • Usar el Límite inferior en la configuración del sensor;
  • Usar Validación si el reinicio ocurre en ciertas circunstancias y es posible identificar una dependencia con otros parámetros (sensores).

En el ejemplo anterior, es suficiente aplicar el límite inferior (0.01), ya que el reinicio ocurre arbitrariamente y no hay dependencia de otros sensores.

De esta manera, mediante el límite inferior se logró excluir los valores cero (reinicio a 0 km) y evitar un cálculo incorrecto del kilometraje.

b. Mensajes con la misma marca de tiempo (opción "Con desborde" activada)

Los rastreadores pueden enviar mensajes con demasiada frecuencia. Wialon tiene una limitación: no más de 1 mensaje debe llegar de la unidad por 1 segundo. Al recibir datos con mayor frecuencia, su cronología puede verse alterada y un valor menor de kilometraje puede entrar en la base de datos después de un mensaje con un valor mayor, ejemplo en la imagen a continuación:

En tales situaciones, ocurre un desborde del contador hasta el valor máximo posible de 2147483648.

Posibles soluciones:

  • Desactivar la opción Con desborde en la configuración del sensor (si estaba activada).

En el ejemplo anterior, la opción Con desborde estaba activada. Al desactivarla, obtuvimos un valor de kilometraje más correcto:

c. Mensajes con la misma marca de tiempo (opción "Con desborde" desactivada)

Los mensajes pueden llegar con la misma marca de tiempo, violando la cronología, por ejemplo:

En general, en la imagen de arriba, el kilometraje parece correcto — 25.01 km, a diferencia del ejemplo anterior donde el error era obvio. Sin embargo, si tomamos de los mensajes el valor inicial del sensor de kilometraje en el intervalo — 9917.81 km y el final — 9942.44 km, restamos la diferencia, obtendremos un kilometraje de 24.63 km.

La diferencia es de 0.38 km en un tramo relativamente pequeño del recorrido. El error aumentará con el aumento del volumen de datos (número de viajes). La causa del error es, por supuesto, la violación de la cronología de los mensajes. El sistema espera que el valor del sensor aumente. En el ejemplo, vemos una caída de 9931.03 km a 9930.85 km y un aumento posterior a 9931.29 km. Se produce un recálculo del kilometraje entre los mensajes con el valor del sensor 9930.85 km y 9931.29 km, es decir, se agregan 0.44 km adicionales.

Posibles soluciones:

  • Cambiar el contador de kilometraje a GPS;
  • Resolver el problema en el lado del hardware;
  • Cambiar el sensor de kilometraje al tipo Odómetro relativo y aplicar validación.

En el ejemplo anterior, se logró obtener valores de kilometraje más correctos cambiando el sensor de kilometraje al tipo Odómetro relativo con la adición de validación. El sensor de odómetro relativo se basa en un parámetro en forma de expresión: mileage-#mileage. El validador se basa en un parámetro en forma de expresión: time-#time. El límite inferior para el validador es 0, y el tipo de validación es Comprobar no nulos. El contador de kilometraje en la pestaña Básicas se cambió a Odómetro relativo.

Después de aplicar la validación, el kilometraje fue de 24.65 km. Los mensajes en los que la marca de tiempo coincide se excluyen del cálculo.

Si tiene preguntas sobre casos prácticos específicos, puede contactar al soporte técnico a través del correo support@wialon.com. Asegúrese de incluir en su correo una breve descripción de la situación con capturas de pantalla, el nombre exacto de la unidad, el nombre de la plantilla de informe para verificación, el intervalo de tiempo mínimo para verificación (por ejemplo, no un mes, sino un día), así como otros detalles importantes.

Pavel Chebotarev,Customer Service Engineer  

Control de Conducción Eficiente
  • technical_consulting
  • eco_driving

El control de conducción eficiente es necesario para determinar qué conductores ayudan a su empresa a reducir costos y quiénes usan el vehículo hasta el desgaste. Con esta herramienta, el despachador puede ver la evaluación de la calidad de conducción del vehículo bajo la responsabilidad del cierto conductor durante cualquier período de tiempo y para cada viaje por separado. Este artículo proporcionará la base teórica y recomendaciones prácticas importantes para configurar el control de conducción eficiente.

Base teórica

La característica clave que ayuda a determinar la calidad de conducción es la aceleración. Esta magnitud física no parece intuitivamente comprensible, por lo que en el marco del aprendizaje se puede comparar con una magnitud más comprensible: la velocidad.

Velocidad y aceleración

La velocidad caracteriza el cambio de posición durante un intervalo de tiempo determinado:

v = S / Δt,

donde v es la velocidad, S es la distancia recorrida durante el intervalo de tiempo considerado (se puede decir que es la diferencia de kilometraje del vehículo al final y al principio), Δt es la duración del intervalo.

Se puede decir que esta fórmula determina la velocidad promedio dentro del viaje. Pero cuanto menor sea el intervalo de tiempo considerado, más se acercará el resultado a la velocidad que se muestra en el velocímetro del vehículo.

La aceleración caracteriza el cambio de velocidad durante un intervalo de tiempo determinado:

a = Δv / Δt,

donde a es la aceleración, Δv es la diferencia de velocidad al final y al principio del intervalo de tiempo considerado, Δt es la duración del intervalo.

El valor promedio de aceleración durante un viaje casi no se utiliza al analizar el movimiento del automóvil, por lo que tiene sentido calcular solo la aceleración para el intervalo de tiempo mínimo.

Unidades de medida

La unidad de velocidad en el Sistema Internacional de Unidades (SI) es el metro por segundo (m/s), sin embargo, en la vida cotidiana se utiliza con más frecuencia la unidad de medida no estándar kilómetro por hora (km/h).

La unidad de aceleración en el SI es el metro por segundo al cuadrado (m/s²), sin embargo, a menudo se utiliza la unidad de medida no estándar g (que es la que se utiliza en Wialon).

g es la aceleración de la gravedad en la superficie de la Tierra, igual a 9.80665 m/s² (a menudo se usa la aproximación g ≈ 10 m/s²). En nuestro caso, es un valor estándar por el cual se divide el valor de aceleración para compararlo con algo más familiar (como la presión a menudo se muestra no en pascales, sino en atmósferas).

Una aceleración de 1 g corresponde a una aceleración de 0 a 100 km/h en 2.83 segundos.

La siguiente tabla ayudará a formar una idea del valor promedio de aceleración para diferentes tipos de movimiento:

Tipo de movimiento

Aceleración promedio m/s²
m/s2g

Ascensor de pasajeros

0.9—1.60.09—0.16

Tren de metro

10.1

Corredor de distancias cortas

1.50.15

Ciclista

1.70.17

Automóvil de pasajeros

2.5—30.25—0.3

Motocicleta

3—60.3—0.6

Automóvil de carreras

8—90.8—0.9

Frenado de emergencia de un automóvil

hasta 20hasta 2

Lanzamiento y frenado de una nave espacial

40—604—6

Maniobra de un avión a reacción

hasta 100hasta 10
 Ejemplo de cálculo de velocidad y aceleración

Usando las fórmulas proporcionadas, calcularemos la velocidad y la aceleración basándonos en las coordenadas de la unidad obtenidas del rastreador.

En el marco del ejemplo, contaremos el tiempo desde 0 segundos. Para simplificar, asumiremos que la unidad siempre se movió en línea recta y que entre los mensajes la velocidad del vehículo cambió uniformemente.

Número de mensaje

12345678

Tiempo, s

0510204070100103

Distancia, m

002515040090014001430

Velocidad, km/h

0018454560600

Aceleración, g

0.0000.0000.1020.0770.0000.0140.000-0.567

Basándonos en la tabla y el gráfico, podemos establecer las siguientes conclusiones:

  • La velocidad es igual a 0 cuando la unidad no cambia de posición.
  • La aceleración es igual a 0 cuando la unidad no cambia de velocidad (está parada o se mueve a velocidad constante).
  • Un valor positivo de aceleración corresponde a un aumento de velocidad, y uno negativo a una desaceleración.
  • Por la magnitud de la aceleración se puede juzgar cuán rápida y significativamente cambió la velocidad entre los mensajes.

Este ejemplo permite evaluar la interrelación entre posición, velocidad y aceleración. Los datos provenientes de un vehículo real pueden diferir de los proporcionados en el ejemplo, el que contiene convenciones y simplificaciones.

Acelerómetros

Los dispositivos para medir la aceleración se llaman acelerómetros. Las tecnologías modernas permiten crear acelerómetros en miniatura de menos de un milímetro de tamaño. Están ampliamente extendidos y se utilizan en muchos tipos de tecnología: smartphones, pulseras de fitness, rastreadores, automóviles, etc.

Dado que la aceleración es una magnitud vectorial, es decir, tiene dirección, para su medición completa se requieren tres acelerómetros instalados perpendicularmente entre sí. Juntos forman un acelerómetro triaxial, en el que, por ejemplo, el eje X muestra aceleración o frenado, el eje Y — giros, el eje Z — subidas y bajadas.

Un rastreador con acelerómetro o un sensor de aceleración separado pueden tener ejes dibujados en la caja, según los cuales debe colocarse en la unidad.

No existe una regla única para la dirección o nomenclatura de los ejes. Es decir, el eje Z puede estar dirigido no hacia arriba, sino hacia abajo, o en lugar del eje X hacia adelante puede estar dirigido el eje Y. Puede conocer esto a partir de la documentación del dispositivo.

Al instalar el dispositivo en la unidad, es importante que esté firmemente fijado.

No será posible instalar el dispositivo perfectamente nivelado en la unidad, por lo que después de la instalación es necesario realizar una calibración. En general, el procedimiento de calibración implica varias etapas: movimiento en línea recta, giros, frenado suave y brusco, viaje sin infracciones, viaje con infracciones. Sin embargo, para diferentes dispositivos, la calibración puede variar significativamente. Puede conocer sobre ella a partir de la documentación del dispositivo.

Dado que en los acelerómetros y rastreadores se utiliza la misma base de elementos (chips), sus lecturas no diferirán en más del 15% (y con una calibración correcta, este valor será aún menor).

Implementación en Wialon

La lógica general del control de conducción eficiente en Wialon se puede presentar de la siguiente manera:

  • En las propiedades de la unidad, en la pestaña Conducción Eficiente, se realizan ajustes y se crean criterios, es decir, reglas según las cuales se realizará la evaluación posteriormente.
  • La evaluación de los mensajes según los criterios se realiza al ejecutar un informe con ciertas tablas (la homónima Conducción Eficiente o algunas otras) o al trabajar con la aplicación Eco Driving.

A continuación, la atención se centrará en los lugares que más frecuentemente generan preguntas entre los usuarios.

Enfoque general para la configuración

Dependiendo de qué datos provienen del rastreador, la configuración de la conducción eficiente debe realizarse de manera diferente. A continuación se describirán todos los enfoques existentes, ordenados por precisión de mayor a menor.

Tipos de rastreadores

Precisión

Complejidad de configuración

Cálculo de aceleración por

Frecuencia de mensajes

Creación de sensores

Criterios para control de aceleración

1. El rastreador envía parámetros calculados de conducción eficiente

AltaFácilParámetros de conducción eficienteCualquieraNo se requiereAceleración, Frenado, Giro, Conducción imprudente

2. El rastreador envía parámetros calculados de aceleración en formato personalizado

AltaMediaNo importaCualquieraSe requierePersonalizados

3. El rastreador envía valores brutos de aceleración por ejes

MediaAltaNo importa1 vez cada 2 segundosSe requierePersonalizados

4. El rastreador no envía datos de aceleración de ninguna forma

BajaFácilGPS1 vez cada 2 segundosNo se requiereAceleración, Frenado, Giro, Conducción imprudente

A continuación, proporcionaremos algunos detalles sobre cada uno de los enfoques:

1. El rastreador envía parámetros calculados de conducción eficiente

Este enfoque es aplicable solo para ciertos tipos de dispositivos que utilizan algoritmos especiales para procesar datos del acelerómetro. Su lista se puede encontrar en el sitio web wialon.com en la sección Hardware usando el filtro Conducción eficiente.

En Wialon, los parámetros de conducción eficiente se llaman wln_accel_max, wln_brk_max y wln_crn_max. Simplificando, se puede decir que estos parámetros contienen valores correspondientes a la aceleración máxima registrada entre dos mensajes consecutivos. Esto permite configurar el rastreador a cualquier frecuencia de guardado de mensajes sin afectar la precisión del resultado.

Tales parámetros son reconocidos automáticamente por el sistema, por lo que no es necesario crear sensores adicionales. Es suficiente configurar el cálculo de aceleración según los parámetros de conducción eficiente y crear criterios con el tipo Aceleración, Frenado, Giro, Conducción imprudente.

2. El rastreador envía parámetros calculados de aceleración en formato personalizado

Estos rastreadores también utilizan algoritmos especiales para procesar datos del acelerómetro, lo que permite configurar el rastreador a cualquier frecuencia de guardado de mensajes sin afectar la precisión del resultado.

Sin embargo, estos rastreadores envían información sobre aceleración en un formato personalizado, por lo que tales parámetros no son reconocidos automáticamente por el sistema, por lo tanto, para su consideración es necesario crear sensores (lo más lógico es elegir el tipo Acelerómetro), y luego, basándose en estos sensores, crear criterios con el tipo Personalizado.

3. El rastreador envía valores brutos de aceleración por ejes

Si los rastreadores no tienen algoritmos especiales para procesar datos del acelerómetro, envían parámetros con lecturas en tres ejes en el momento de la generación del mensaje. En tal caso, cuanto mayor sea la frecuencia de guardado de mensajes, mayor será la precisión del resultado, sin embargo, esto llevará a un aumento del tráfico GPRS utilizado por el rastreador. La frecuencia recomendada es 1 mensaje cada 2 segundos.

Tales parámetros no son reconocidos automáticamente por el sistema, por lo tanto, para su consideración es necesario crear dos sensores (lo más lógico es elegir el tipo Acelerómetro): uno se basará en el parámetro del eje X (un valor positivo corresponderá a aceleración y uno negativo a frenado), y el otro se basará en el parámetro del eje Y (un valor positivo mostrará un giro en una dirección y uno negativo en la otra). El eje Z, relacionado con la aceleración vertical, no se utilizará para los cálculos. Luego, basándose en estos dos sensores, crear criterios con el tipo Personalizado.

Para dispositivos de este tipo, puede no estar previsto un procedimiento de calibración, debido a lo cual se requiere una configuración individual para cada eje para obtener lecturas precisas de aceleración.

Vale la pena repetir que no existe una regla única para la dirección o nomenclatura de los ejes. Puede conocer las direcciones de los ejes de su dispositivo a partir de su documentación.

4. El rastreador no envía datos de aceleración de ninguna forma

Si los rastreadores no tienen acelerómetro, es decir, no pueden medir la aceleración, se puede calcularla matemáticamente a partir de los datos del GPS. En tal caso, cuanto mayor sea la frecuencia de guardado de mensajes, mayor será la precisión del resultado, sin embargo, esto llevará a un aumento del tráfico GPRS utilizado por el rastreador. La frecuencia recomendada es 1 mensaje cada 2 segundos.

Luego es necesario configurar el cálculo de aceleración por GPS y crear criterios con el tipo Aceleración, Frenado, Giro, Conducción imprudente.

Si el rastreador no envía información sobre la dirección del movimiento (parámetro course), el sistema no podrá determinar infracciones según criterios con el tipo Giro.

Valores recomendados de criterios

La magnitud de la aceleración al conducir un vehículo depende de muchos factores: potencia del motor, condición técnica del vehículo, peso del vehículo, carga del cuerpo, agarre de los neumáticos con la carretera, calidad de la superficie de la carretera, condiciones meteorológicas, etc. Debido a esto, no existen normas generales recomendadas de aceleración al conducir un vehículo.

La fuente de información sobre los valores promedio de aceleración en diversas situaciones (aceleración suave, giro brusco, frenado de emergencia, etc.) puede ser literatura especializada, que debe contener información sobre modelos específicos de vehículos. También se podría ajustar a los valores que utilizan las compañías de seguros, sin embargo, debido a las peculiaridades de su actividad, no publican dicha información en acceso abierto.

En base a esto, vale la pena formar expectativas correctas del módulo Conducción eficiente: permite detectar infracciones de acuerdo con los criterios configurados y realizar una evaluación comparativa de varias unidades o conductores.

Plantillas de criterios

Para simplificar la configuración de criterios en Wialon, hay 3 plantillas estándar disponibles: para automóviles, para camiones y para autobuses. Con su ayuda, se pueden obtener varios criterios de inmediato, que se pueden dejar en su forma original, modificar ligeramente o simplemente usar como ejemplo para la configuración independiente.

Si utiliza las plantillas estándar de criterios para diferentes unidades, incluso si no está seguro de la exactitud de los valores en los criterios, podrá ver una evaluación relativa obtenida según las mismas reglas. Esto debería ser suficiente para hacer comparaciones dentro de una misma flota.

También es una buena recomendación verificar los criterios en la práctica. Para esto, es suficiente realizar varios viajes en el vehículo: en uno se debe mantener un estilo de conducción normal, y en otro, intentar cometer las mismas infracciones que luego deben ser monitoreadas. Después de esto, será suficiente revisar los mensajes del rastreador o ejecutar un informe con la tabla Conducción eficiente para determinar los valores de aceleración con diferentes estilos de conducción, y luego, basándose en ellos, determinar los límites para las infracciones.

Oleg Zharkovsky,Customer Service Engineer  

10
  • 10
  • 25
  • 30
Gracias por su opinión.
Informar de un error
Texto con el error Comentario
Máximo 500 caracteres